我的程序使用套接字进行进程间通信。有一台服务器正在侦听localhost上的套接字端口(B),等待连接的TCP客户端列表。在服务器的另一端是另一个套接字(A),它将数据发送到互联网。服务器旨在将TCP客户端发送给他的所有内容转发到Internet上的服务器。我的问题是,如果两个TCP客户端碰巧同时发送数据,这对服务器的传出套接字(A)来说是个问题吗?
由于
答案 0 :(得分:2)
如果多个线程将使用相同的套接字传输数据,MSDN docs建议您使用BeginSend
和EndSend
。
所以我建议您使用这些方法或将传出数据写入同步队列,然后单个线程从队列中挑选数据并通过套接字发送(A)
答案 1 :(得分:1)
您没有描述如何将多个客户端流的流量复用到单个传出流中。只是随意地将大量客户端流量放入流中并不能保证工作。在intertube另一端的接收端将不知道哪些字节属于什么对话。
我建议你首先关注另一端。什么机器在那里,它做什么,它需要知道什么在本地的多个客户端。