Delphi Socket编程问题(200分)(200分)

  • 主题发起人 主题发起人 Casino
  • 开始时间 开始时间
可能是另一端输出的速度相当的快,你的接收就会有问题了
你的问题我也碰到过,一次是我用UDP解决的,另一次我是加了
一个线程就可以了
Blocking ,nonBlocking相当的关键,如何处理?
 
如果用重叠I/O的话就容易了
线程里WHILE TRUE取得重叠操作得结果
你就知道什么时候该读了
 
我很高兴与你进行讨论。我正在线。希望你收到后尽快联系。
使用阻塞方式可以实现。我正在进行一个与你相同的项目。我的这个问题已经解决。如果我的回答能够帮你解决问题。希望你也帮助我,这只是在你确认以后。
设置Tclientsocket为阻塞方式。并且设置其他的属性。进行连接。发送数据以后,使用以下方式接受服务器传回的数据。
var
Mywinsocketstream:TwinsocketStream;
temp:boolean;
getdata:string;
begin
Mywinsocketstream=TwinsocketStream.create(clientsocket.socket,45000)//后一个参数为超时
//开始循环
mywinsocketstream.waitfordata(45000);
clientsocket.socket.receivetxt;
//接受完数据推出循环

我的意思,你可以使用上述waitfordata函数,实现服务器数据的接受。把所有接受到的信息在进行处理即可。
我的回答的核心是请你使用Twinsocketstream帮助完成数据的接受。
需要注意:使用完毕后销毁该类。
 
后退
顶部