Delphi---TServerSocket和TClientSocket发送和接收大数据包
2018-10-09 16:51
399 查看
https://www.cnblogs.com/zhangzhifeng/p/6065244.html
TServerSocket和TClientSocket用非阻塞模式发送和接收比较大的数据时,可能一次会接收不完,此时需要通过循环接收。
//接收
procedure TMAINFORM.TCPServer1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var iLength,I,iStart, iRevCount: Integer; iReceived: Integer; buff: array of byte; S:STRING; begin S:=''; iStart := 0; iLength:= Socket.ReceiveLength; iRevCount := iLength; //这里加入的 SetLength(buff, iLength); MEMO1.Lines.Add(INTTOSTR(ILENGTH)); while iLength>0 do begin iReceived := Socket.ReceiveBuf(buff[iStart], iLength); //这里修改了注意 iStart := iStart + iReceived ; //这里加入的 iLength := iLength - iStart; end; //下面你的iLength 使用 iRevCount 替换了 FOR I:=0 TO iRevCount -1 DO BEGIN S:=S+INTTOSTR(BUFF[I]); END; MEMO1.Lines.Add(S); buff:= nil; end;
发送:Socket.SendBuf
相关文章推荐
- 使用DatagramSocket发送、接收数据(2)---server端
- 使用DatagramSocket发送、接收数据(Socket之UDP套接字)
- 异步 SOCKET 编程 - 发送和接收数据
- Socket 通信发送和接收数据
- 一个简单的socket服务端和客户端程序:客户端发送数据给服务端,服务端接收到数据后再给客户端发送数据
- 8、socket数据的接收和发送
- 详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
- 使用DatagramSocket发送、接收数据(Socket之UDP套接字)
- Socket 接收和发送数据的深刻理解.
- 《疯狂Java讲义(第2版)》学习笔记:使用DatagramSocket发送接收数据
- DELPHI SOKET 编程(使用TServerSocket和TClientSocket)
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
- socket发送和接收数据
- 一个socket连接、发送、接收数据失败后是否可以重新进行连接的问题
- C#网络Socket的数据发送与接收处理(利用异步)的模板(模式)
- socket 编程入门教程(一)TCP server 端:7、接收与发送
- 异步 SOCKET 编程 - 发送和接收数据
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- Socket —>AsyncSocket(ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收)
- socket 编程入门教程(一)TCP server 端:7、接收与发送