Delphi:通过一个套接字多线程发送数据

时间:2011-12-09 03:00:02

标签: multithreading delphi

有人可以告诉我如何通过多线程中的一个连接发送和接收数据。

模型看起来像这样:

Model

我所知道的是,如果所有三个客户端同时发送数据,“客户端X”将接收所有接收数据的合并,“客户端X”无法分离该数据以识别哪个部分来自哪个客户。

Delphi 2010,Indy,Win7。

对不起,如果我的英语不好,我希望你理解这个想法。

1 个答案:

答案 0 :(得分:6)

您需要实现一个锁定机制,例如关键部分或互斥锁,以防止多个线程在同一时间写入套接字。

当接收发往多个线程的数据时,您需要仅在一个线程中进行读取,并根据需要将数据传递给其他线程。

无论哪种方式,您都需要对数据进行帧化,以便接收方知道一条消息的结束位置以及下一条消息的开始位置。要么是在发送消息内容之前发送消息的长度,要么是在消息之间发送永远不会出现在消息本身中的唯一分隔符。