我写了个局域网聊天的程序,参考的delphi 7 DEMO文件夹的方法,不同的是我没用缓冲区,现在遇到问题了,如何在线程里读取TcpServer的OnAccept事件里的缓冲区ClientSocket.Receiveln 线程里不认啊,这东西也不是变量,带不进来啊;主线程是这个事件
procedure Tfrmmain.Server1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
我线程里是这样的
procedure talkthread.Execute;
begin
Synchronize(synchAddDataToControl);
self.Suspend;
end;
procedure talkthread.synchAddDataToControl;
begin
with frmmain do
begin
while s <> #13 do
begin
TargetList.Lines.Add(s);
s:=ClientSocket.Receiveln; // ###
end;
end;
end;
问题出在###的行里
delphi中,如何用多线程读取TcpServer缓冲区
答案:2 悬赏:20 手机版
解决时间 2021-02-22 13:13
- 提问者网友:了了无期
- 2021-02-21 17:46
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-21 17:58
procedure talkthread.synchAddDataToControl;
是可以当参数传的,
procedure talkthread.synchAddDataToControl(ClientSocket:TClientSocket);
问题是你这样搞行不?
是可以当参数传的,
procedure talkthread.synchAddDataToControl(ClientSocket:TClientSocket);
问题是你这样搞行不?
全部回答
- 1楼网友:低音帝王
- 2021-02-21 18:21
你如果用的是delphi7的话,在它的安装目录下面\demos\internet\netchat
就有一个现成的例子。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯