在heroku上托管的Java套接字程序无法获得InputStream



我试图上传我的聊天程序到heroku,但客户端无法从服务器获得InputStream,所以它停止了。这有什么问题?它工作得很好,当我只是尝试在本地主机。它打印出"正在获取I/O流"。但是它似乎在获取InputStream时停止了。

也有可能从Server.jar获得输出?我无法检查我的程序是否运行良好。

服务器

server = new ServerSocket();
server.bind(new InetSocketAddress(ip, port));
System.out.println("server opened in " + ip + ":" + port);
try {
while (server.isClosed() == false) {
if (server.isClosed() == false) {
Socket connection = server.accept();
Client client = new Client(connection);
}
}
} catch (Exception error) {
if (server.isClosed() == false) {
error.printStackTrace();
shutdown();
}
}

客户

InetAddress[] dns = null;
try {
dns = InetAddress.getAllByName("jjabtu.herokuapp.com");
} catch (UnknownHostException error) {
System.out.println("No domain found");
}
Socket connection = new Socket(dns[0].getHostAddress(), 80);
System.out.println("getting I/O stream");
ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream());
ObjectInputStream input = new ObjectInputStream(connection.getInputStream());
System.out.println("got I/O stream");

heroku支持websockets,但纯socket TCP连接?我猜他们不支持这个。您使用"路由器"连接到服务器。服务器在中间,所以它的网络拓扑与本地运行时不同。

看到这个https://devcenter.heroku.com/articles/node-websocketshttps://devcenter.heroku.com/articles/play-java-websockets

相关内容

最新更新