因此,我有一个客户机wich连续发送和接收数据消息,wich工作正常,然而,当我关闭/停止客户机时,我会得到以下单行错误:
java.net.SocketException: Socket closed
尽管我试图关闭插座--最终封闭了。现在我的问题是为什么我会收到这个错误,这个行为是否正常,以及如何正确处理这个错误。下面是我的代码:
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = null;
try {
socket = new Socket("localhost", 9101);
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
try {
System.out.println(in.readLine());
} catch (IOException e) {
e.printStackTrace();
System.out.println("error");
}
}
}
});
thread.start();
System.out.println("Write to server:");
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String message = scanner.nextLine();
out.println(message);
out.flush();
};
} finally {
socket.close();
}
}
if(socket.isClosed())
System.out.println(in.readLine());
我最近一直在玩套接字,但是我遇到了一个问题…当我从服务器接收数据时,我得到一个“java.net.套接字异常:套接字关闭”异常。我没有在任何地方关闭套接字,事实上,我唯一使用关闭()的地方是扫描仪上从System.in读取文本; 以下是我的代码: 客户: 服务器: 数据包发送者: 客户端接收器: 数据包接收器:
我正在为客户机发送对象到服务器,在服务器端修改该对象,并将其重新发送到客户机。将对象从客户机发送到服务器很好,它工作正常,但当我将对象发送回来时,它给出了异常,Socket关闭。这里是代码。IntString和ParentObj是我要发送对象的类。 服务器类 用于发送和接收对象的Send_recv类。
问题内容: 我有一个使用简单套接字在两个系统之间传递某些字符的应用程序。我的Java应用程序作为服务器运行。我建立了良好的连接,甚至传递了一条消息。但是,发送完一条消息后,我的连接关闭。 从我可以看出来的好像是在关闭时,套接字本身正在关闭吗?!这很不好,因为我有多个要在同一连接上发送的消息。 我吃饱了吗?如何在Java中维护此连接? 问题答案: 是的,关闭任何作家/读者将关闭他们包装的所有其他作家
我想创建能够与多个客户端连接的服务器,但我总是收到“套接字关闭”异常或从输入流中读取空值,以前我认为这是由于以错误的方式关闭套接字连接引起的,所以我发布了这个主题,但现在似乎这不是问题所在。 服务器方法 HandlerThread类 客户端模拟器 例外和问题 在客户端模拟器之前启动服务器,客户端模拟器没有任何异常,但是在服务器端,并没有收到所有数据,从控制台打印信息时,我看到“null”、“Hel
问题内容: 有人可以解释一下Java套接字中的以下行为: 总体思路是这样的: 打开套接字,获取I / O流。 写请求,关闭流 读取响应,关闭流 关闭插座。 这是我的问题。 如果我将a 用于输出,然后将其关闭,则它将关闭整个套接字,并且随后的读取操作将失败。 相反,如果我直接使用套接字的方法,它将正确关闭输出流通道,同时使套接字保持活动状态。 为什么关闭对象会使整个插槽都掉下来? 问题答案: 这可能
我有一个java应用程序,它使用一个内部代理服务器来分析web应用程序的http trafic(在浏览器-Prism或Chrome/Chromium中),这实际上是同一个应用程序的一部分。基于trafic分析,它执行了一些操作。 该应用程序在Windows(XP,7和8)中运行良好,我也在Ubuntu和SUSE中使用它没有任何问题。最近,一个新的潜在客户想在CentOs中测试它,但我发现java.