[英]How to close TCP connection from server in Java
這是我需要用Java實現的用例:
上一步有問題,因為我不知道如何關閉服務器站點的連接。 我當前的代碼是波紋管。 如何啟動關閉TCP握手表單服務器站點的連接? 感謝您的任何幫助。
public class Server{
public static void main(String[] args) throws Exception {
while (true) {
int port = AppConfig.getInstance().getPort();
try (ServerSocket socket = new ServerSocket(port)) {
Socket server = socket.accept();
InetAddress ipAddress = server.getInetAddress();
MessageHandler handler = new MessageHandler(ipAddress);
InputStream in = server.getInputStream();
// reads all bytes from input stream and process them by given handler
processStream(in, handler);
in.close();
server.close();
} catch (Exception e) {
LoggingUtils.logException(e);
}
}
}
private static void processStream(InputStream in, MessageHandler handler) throws Exception {
// implementation is omitted
}
}
您已經完成了。 in.close()
關閉輸入流,套接字輸出流和套接字。
您真正應該關閉的是連接到套接字的輸出流,以確保將其刷新,並且您可能應該在processStream()
方法中執行此操作,並在調用方法的finally
塊中使用saver server .close()
。 。
注意:您的套接字名稱實際上是錯誤的方法。 通常使用ServerSocket serverSocket
和Socket socket = serverSocket.accept()
。
我可能對此不太確定,但我相信socket.close()將發送所有命令(FIN / FIN-ACK)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.