gpt4 book ai didi

java - 我可以关闭并重新打开套接字吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:57 25 4
gpt4 key购买 nike

我学习了一个使用套接字的例子。在此示例中,客户端向服务器发送请求以打开套接字,然后服务器(监听特定端口)打开套接字,一切正常,套接字从双方(客户端和服务器)“打开”。

但我仍然不清楚这东西有多灵活。例如,客户端是否可以关闭一个打开的(从两端)套接字并再次重新打开它(在服务器保持套接字打开的情况下)。

服务器是否有可能“知道”客户端关闭了套接字?客户端是否有可能知道服务器端关闭了套接字?

已添加:

还有一件对我来说很重要的事情。如果应用程序(不是主服务器或客户端)崩溃、异常终止、终止,会发生什么情况?它会关闭应用程序端打开的所有套接字吗?

添加 2:

如果套接字一侧的应用程序关闭(终止、关闭、终止)然后再次打开(在相同的 IP 地址和相同的端口上)会怎样?我们应该在两个应用程序之间创建一个新套接字,还是可以使用旧套接字(在崩溃之前创建)。

最佳答案

套接字可用于很多事情,这些问题的答案会改变,但我假设您在谈论 TCP。

For example, is it possible for the client to close an opened (from both ends) socket and to reopen it again (under condition that the server keeps the socket opened).

不,因为 TCP 将执行再见,您无法从那里再次获取连接。您必须再次进行三次握手,然后开始全新的连接。

Is it possible for the server to "know" that a socket was closed on the client side? Is it possible for the client to know that a socket was closed on the server side?

Yes . TCP 可以发送再见数据包或一侧超时,在这两种情况下都完全有可能检测到这些情况。

关于java - 我可以关闭并重新打开套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2456607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com