Socket压力测试问题,服务端Socket长连接循环接收并处理信息

2024-12-01 20:26:07
推荐回答(3个)
回答1:

采用多线程,服务器端每ACCEPT一个连接后,针对生成的CLIENTSOCKET创建一个线程埋含,在每铅猛个新建的线程中完成通信交互过程,大概不会出现你说的问题了。
PS,还有一点一定要牢记,就是TCP 流式套接字只保证“有序无误”,但不能保证收发槐液桥双方的次数和内容一定相同,就是说可能发100次,但是接收次数可能只有一次。

回答2:

这个看代码蔽派才好解决的。你大概问,我也只能大概答。
如果单发1次返回2次,那是你代码问题造成重复发送。
如果多线程核颤同步发,那返回2次或者多次时正常的。
如果多客户端多线程同步改并败发,单客户端返回2次,确定是异常,那么也是你编码问题造成的逻辑混乱。

1,服务端接受编码逻辑混乱。
2,接收缓冲没复位。
3,客户端接受编码和发送编码不同步,发了2次,接受线程优先级低,接受的时候就2次一起接受了。

回答3:

Socket通信的原理还是比较简单的,它大致分为以下几个步骤。
服务器端的步骤如下。

(1)建立服务器端的Socket,开始侦听整个网络中的连接请求。

(2)当检测胡世到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。

(3)当完成通信岩闭后,服务器关闭与客户端的Socket连接。

客户端的步骤如下。

(1)建立客户端的Socket,确定要连接的服务器的主机名和端口。

(2)发送连接请求到服务器,并等待服务器的回馈信息。

(3)连接成功后,与服裤枣肢务器进行数据的交互。

(4)数据处理完毕后,关闭自身的Socket连接。

代码参考资料
http://www.quhs.com/aspnet/6578_3.html