关于ClientSocket断开的问题。(100分)

  • 主题发起人 主题发起人 阿蛮
  • 开始时间 开始时间

阿蛮

Unregistered / Unconfirmed
GUEST, unregistred user!
我的ClientSocket在连接后就向服务器发送信息,如果只发一条信息就断开,什么事都没有,如果
用一个循环发送多条信息再断开,服务器就会报告“Asynchronous socket error 10054.”
以下是我的代码:
procedure TForm_Main.Socket2Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
i: string;
begin
While Not Adoquery1.Eof do
begin
j:=Adoqueyr1.FieldValues['pack'] //取字段pack的内容
sleep(1500) //暂停1.5秒,否则j的值会等于字段pack的所有内容,何故?
if Socket.SendText(j)=Length(j) then
Adoquery1.Delete;
end;
Socket.Close; //就是到这里就报错
end;
如果把循环取消,则服务器什么错误都没有,各位大哥帮我看看是什么问题。
 
在close前面加:
application.pro...;
sleep(1000);
看看!
可能是你的服务器反应不过来啊!
 
原则上服务器一端不能关闭连接.
还有,接受到的数据应该从内存中取出再进行数据库处理!!!
 
兄弟啊?
你发多条时,SOCKET一下子根本是处理不过来的,
 
同意楼上,你不如先把数据库的数据放在Buffer里面,然后再通过Socket发送
 
多人接受答案了。
 

Similar threads

后退
顶部