Delphi---TServerSocket和TClientSocket发送和接收大数据包
生活随笔
收集整理的這篇文章主要介紹了
Delphi---TServerSocket和TClientSocket发送和接收大数据包
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
https://www.cnblogs.com/zhangzhifeng/p/6065244.html
?
TServerSocket和TClientSocket用非阻塞模式發(fā)送和接收比較大的數(shù)據(jù)時(shí),可能一次會接收不完,此時(shí)需要通過循環(huán)接收。
?
//接收
procedure TMAINFORM.TCPServer1ClientRead(Sender: TObject;Socket: TCustomWinSocket); variLength,I,iStart, iRevCount: Integer;iReceived: Integer;buff: array of byte;S:STRING; beginS:='';iStart := 0;iLength:= Socket.ReceiveLength;iRevCount := iLength; //這里加入的SetLength(buff, iLength);MEMO1.Lines.Add(INTTOSTR(ILENGTH));while iLength>0 dobeginiReceived := Socket.ReceiveBuf(buff[iStart], iLength); //這里修改了注意iStart := iStart + iReceived ; //這里加入的iLength := iLength - iStart;end;//下面你的iLength 使用 iRevCount 替換了FOR I:=0 TO iRevCount -1 DOBEGINS:=S+INTTOSTR(BUFF[I]);END;MEMO1.Lines.Add(S);buff:= nil; end;
發(fā)送:Socket.SendBuf
?
轉(zhuǎn)載于:https://www.cnblogs.com/tc310/p/9761301.html
總結(jié)
以上是生活随笔為你收集整理的Delphi---TServerSocket和TClientSocket发送和接收大数据包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目计划定制:项目计划划分与产品项目推进
- 下一篇: 拒绝推断问题(转)