【发布时间】:2011-12-09 14:30:40
【问题描述】:
谁能告诉我如何在多线程中通过一个连接发送和接收数据。
模型如下所示:
我所知道的是,如果所有三个客户端同时发送数据,“客户端 X”将接收所有接收到的数据的合并,而“客户端 X”无法分离该数据以识别哪个部分来自哪个客户。
德尔福 2010、印地、Win7。
对不起,如果我的英语不好,我希望你能理解这个想法。
【问题讨论】:
标签: multithreading delphi
谁能告诉我如何在多线程中通过一个连接发送和接收数据。
模型如下所示:
我所知道的是,如果所有三个客户端同时发送数据,“客户端 X”将接收所有接收到的数据的合并,而“客户端 X”无法分离该数据以识别哪个部分来自哪个客户。
德尔福 2010、印地、Win7。
对不起,如果我的英语不好,我希望你能理解这个想法。
【问题讨论】:
标签: multithreading delphi
您需要实现锁定机制,例如临界区或互斥锁,以防止多个线程同时写入套接字。
当接收到多个线程的数据时,只需要在一个线程中进行读取,并根据需要将数据传递给其他线程。
无论哪种方式,您都需要对数据进行框架化,以便接收者知道一条消息在哪里结束,而下一条消息从哪里开始。要么在发送消息内容之前发送消息的长度,要么在消息之间发送一个永远不会出现在消息本身中的唯一分隔符。
【讨论】: