一个TCP端口最多可以同时连接多少个客户端呢?

pp616 ( 傻小子二星用户 该版得分小于等于30000分,大于10000分    2003-12-08 17:54:11 在  C++ Builder /  网络及通讯开发 提问

最近服务器程序。用的socket   api
只接受连接什么事都不做。发现一个问题。
服务器只能接受3900多个Client端再多了就Accept不了了。

开始怀疑是服务器程序写的有问题。
后来我打开本机的http服务和ftp服务。
模拟Client去连接80   或是   21端口发现还是3900快到4000左右的Client连接上后再有Client去连接就怎么也连接不上了。WSAGetLastError和GetLastError都得不到任何信息,真是奇怪。

难道是win2k的限制?我用的win2k   adv   svr   我又怀疑是硬件限制,我的计算机C4-1.8   512MB-ddr.
后来我在p4-2G   1GB-DDR   SCSI-36G硬盘   win2k   adv   svr   上测试还是快到4000就再也连接不上了。系统换成Win2003   server还是这样。
哎···没折了。大伙遇到过这问题吗。帮帮忙吧。
问题点数: 200、回复次数: 32
在 Visual Studio Code (VSCode) 中创建一个 Python TCP 客户端程序,你需要用到 `socket` 模块来处理网络通信。以下是一个简单的示例,演示如何连接到指定端口(5555),发送特定格式的报文(25个字符)并利用 for 循环测试连接数量: ```python import socket import time def create_client(): # 创建一个TCP套接字 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置超时时间 client.settimeout(5) while True: # 遍历测试连接次数 for i in range(1, 100): # 这里假设你想测试最多99次 try: # 连接服务器 host = 'localhost' # 如果服务器在同一台机器上 port = 5555 client.connect((host, port)) # 发送报文 message = "NApro*" + str(i) + "#" if len(message) > 25: message = message[:25] # 保持报文长度为25字符 client.sendall(message.encode()) # 接收服务器响应,这里仅作为示例,可能不需要接收完整信息 response = client.recv(1024).decode() print(f"Sent message {i}, received response: {response}") # 断开连接并清除节点(这里仅显示在控制台上) client.close() print(f"Connection closed. Node removed - iteration {i}") break # 结束当前迭代 except (socket.timeout, ConnectionRefusedError): print(f"Failed to connect at iteration {i}. Retrying...") continue except Exception as e: print(f"Unexpected error: {e}") client.close() break else: print("Max number of connections reached.") break # 当没有异常退出循环时,表示达到最大连接数 if __name__ == "__main__": create_client() ``` 在这个脚本中,我们首先创建一个 TCP 套接字,然后尝试连接到本地主机的 5555 端口。对于每个连接,我们会生成一个包含序号的报文,并发送给服务器。如果连接失败或超时,会捕获相应的异常并重新尝试。当达到预定的最大连接次数(这里是 99 次)或者遇到无法解决的错误时,程序会停止。 请注意,这个示例并不包括在软件界面直观地删除节点的操作,因为这通常涉及到图形用户界面(GUI)或更复杂的数据结构管理,而这不在基础的 Python 网络编程范围内。如果你想实现 GUI 上的操作,可能需要借助如 PyQt 或 Tkinter 这样的库。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值