当前位置: 首页 > 知识库问答 >
问题:

Java套接字TCP拆卸

齐乐逸
2023-03-14

创建套接字并建立连接后,我使用BufferedReader和PrintWriter从套接字进行写/读操作。

Socket s = new Socket(ip, port);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream());

当我用完插座后,我就把它关上。

s.close();

这将导致发送一个TCP fin,并留下一个半开的传输控制协议。有什么方法可以检测客户端/服务器是否关闭了连接?

共有1个答案

王声
2023-03-14

这将导致发送一个TCP fin,并留下一个半开的传输控制协议。

不完全是。它将保留一个半开放的TCP连接,如果接收到更多数据,该连接将发出重置。

有什么方法可以检测客户端/服务器是否关闭了连接端?

如果你已经关闭了你的。如果您刚刚发出写关闭命令,您可以一直读到EOS,这将告诉您对等关闭的情况,然后关闭套接字。除非你真的必须同时达成交易,否则就没什么意义了。

 类似资料:
  • 问题内容: 任何人都可以通过TCP发送Ascii msg的示例给我(在网上找不到示例) 谢谢, 射线。 问题答案: 这是一个写入和读取回显服务器的示例。 简化摘录:

  • 在套接字最终接受另一端消失的情况下,什么指定了这个超时?是操作系统(Ubuntu 11.04),还是来自TCP/IP规范,还是套接字配置选项?

  • Netty TCP Server在端口处运行,接收格式的数据。它使用Marine API库将胡言乱语转换为需要从套接字输入流的有意义的信息。 如何获得正在使用的netty服务器端口的输入流?

  • 我在Python中使用套接字制作聊天应用程序,但当我尝试从不同的计算机连接时,它会说: C:\用户\James\OneDrive\Documents\Python\Projects\Gui聊天\client.pyw[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应 这是套接字的服务器代码: 我还有一个循环接受所有请求: 在客

  • 我使用Android应用程序通过TCP套接字与同一局域网上的PC java应用程序进行通信、发送和接收消息。下面是我在android中使用的Asynctask的代码,用于发送消息并从PC接收回复: } 我在onPostExcecute中的祝酒词中显示PC的回复。 Android通过BufferedWriter发送消息,而PC上的java应用程序在BufferedReader中接收消息。 PC在收到