gpt4 book ai didi

java - 同时建立多个 TCP 连接

转载 作者:行者123 更新时间:2023-11-30 08:06:22 24 4
gpt4 key购买 nike

我对Java中的TCP的理解是,虽然你可以在套接字上多线程处理数据传输,但一次只能建立一个连接。这是真的?如果没有,您将如何实现一个可以在同一地址和端口上同时建立多个连接的服务器。

即,如果客户端尝试建立与服务器的连接,但通过非常不稳定的网络进行连接,那么服务器是否必须等待连接握手完成才能接受来自另一个客户端的连接?

最佳答案

If a client was to try and establish a connection to the server, but is connecting over a very unstable network, would the server have to wait for the connection handshake to complete before being able to accept a connection from another client?

TCP 协议(protocol)的这个方面由listen backlog 解决。 。至少在 Linux 上,服务器的半打开连接会排队等待完成,然后准备接受。服务器可以处理的最大半开连接数受操作系统限制。在 Linux 上,您可以通过检查 /proc 条目来了解上限。例如在 RHEL 6 VM 上:

$ cat /proc/sys/net/core/somaxconn 
128

恶意实体可以通过启动 SYN_FLOOD 来利用此漏洞攻击会填满监听积压并阻止您的服务器接受新连接。减轻这种类型的攻击(特别是由僵尸网络执行时)非常困难,但有一些 basic defences以及一些昂贵的付费服务。

关于java - 同时建立多个 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042202/

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