4
有人可以让我知道如何通过多线程中的一个连接发送和接收数据。德尔福:通过一个套接字多线程发送数据
该模型是这样的:
我所知道的是,如果所有的三个客户端都在同一时间发送数据,“客户端X”将获得合并的所有接收到的数据,并“客户端X”无法分离该数据以识别哪个部分来自哪个客户端。
Delphi 2010,Indy,Win7。
对不起,如果我的英语不好,我希望你明白这个主意。
有人可以让我知道如何通过多线程中的一个连接发送和接收数据。德尔福:通过一个套接字多线程发送数据
该模型是这样的:
我所知道的是,如果所有的三个客户端都在同一时间发送数据,“客户端X”将获得合并的所有接收到的数据,并“客户端X”无法分离该数据以识别哪个部分来自哪个客户端。
Delphi 2010,Indy,Win7。
对不起,如果我的英语不好,我希望你明白这个主意。
您需要实现锁定机制,例如临界区或互斥锁,以防止多个线程完全同时写入套接字。
当接收到发往多个线程的数据时,您只需要在一个线程中进行读取操作,并根据需要将数据传递给其他线程。
无论采用哪种方式,您都需要构建数据,以便接收方知道一条消息的结束位置和下一条消息的开始位置。可以在发送消息内容之前发送消息的长度,也可以在消息之间发送一个永不会出现在消息本身中的唯一分隔符。
对,就像我想的那样 – waza123