我在serversokcet端连续发送20条记录,而clientsocket端最多只能接收到2条记录
为什么?应如何解决这个问题?(发送端的记录肯定已经读出并且已发送了)
//clientsocket
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
data:Tstringlist;
myrec:string;
begin
data:=Tstringlist.Create;
myrec:=Socket.ReceiveText;
data.Text:=myrec;
if data.Values['bj']='2' then
begin
tm[tihao]:=data.Values['tm'];
tihao:=tihao+1;
end;
data.Free;
end;
//serversocket
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
……
begin
…………
//以下代码连续发送20条记录给clientsocket,
for i:=1 to 20 do
begin
data2:=Tstringlist.Create;
adoquery1.RecNo:=random(sumtihao)+1;
data2.Values['bj']:='2';
data2.Values['tm']:=adoquery1.Recordset.Fields.Item[1].Value;
socket.SendText(data2.text);
data2.Free;
end;
end;
end;
为什么?应如何解决这个问题?(发送端的记录肯定已经读出并且已发送了)
//clientsocket
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
data:Tstringlist;
myrec:string;
begin
data:=Tstringlist.Create;
myrec:=Socket.ReceiveText;
data.Text:=myrec;
if data.Values['bj']='2' then
begin
tm[tihao]:=data.Values['tm'];
tihao:=tihao+1;
end;
data.Free;
end;
//serversocket
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
……
begin
…………
//以下代码连续发送20条记录给clientsocket,
for i:=1 to 20 do
begin
data2:=Tstringlist.Create;
adoquery1.RecNo:=random(sumtihao)+1;
data2.Values['bj']:='2';
data2.Values['tm']:=adoquery1.Recordset.Fields.Item[1].Value;
socket.SendText(data2.text);
data2.Free;
end;
end;
end;
解决方案 »
- 谁有线程插入的资料。。我研究了好阵子也没个效果。
- 刚毕业~ 做这个行吗~
- 我想做一个全局钩子,截获特定窗体或者所有窗体(不管是什么程序)的激活、不激活消息,不知是否用WH_CBT钩子,请高手赐代码!在线等...
- 数据库的执行速度问题!
- dll 声明问题.....
- 某对同居男女的日记 [绝对隐私] !!!!!!!!!!!!
- 急问题?
- 初学者问题:如何在提示信息即' '中的信息中显示其中变量的内容?
- 请问哪里有sql server2000下载!
- delphi中如何在一个窗口中显示另一个窗体。。50分
- 有什么控件能读出远程主机的文件树形结构吗?用ShellTreeView行不行?
- 如何能自定义一种有自己确定后缀名的文件类型,并怎么能打开
发一条停一下应该没问题了
要么你自定义Buf,用socket.sendBuf来发送;
有用socket.sendbuf方面的资料或源程序吗? TO:outer2000(天外流星)
我是通过查看客户端的数组里的内容知道的