我使用TClientSocket或indy的TIdTCPClient(取决于项目)
我有几个Threads每个处理项目,有时需要通过连接的客户端套接字发送数据。 (套接字的数据读取不在处理线程中使用)
基本上我的问题是......
或者我应该
delphi-7 indy-9
答案 0 :(得分:4)
多个线程可以读写同一个套接字。从每次accept
开始,它将提取挂起连接队列上的第一个连接,创建具有相同套接字属性的新套接字,并为该套接字分配新的文件描述符。
每个接受的连接只有一个线程。
如果您询问是否可以对接受的连接进行多次写入/读取,则需要锁定功能,因此会失去并行性优势。如果要线程化一个长进程然后在套接字中写入结果,请使用同步以正确的顺序写入。