https://www.cnblogs.com/zhangzhifeng/p/6065244.html

TServerSocket和TClientSocket用非阻塞模式发送和接收比较大的数据时,可能一次会接收不完,此时需要通过循环接收。

//接收

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;

  

发送:Socket.SendBuf

转载于:https://www.cnblogs.com/tc310/p/9761301.html

Delphi---TServerSocket和TClientSocket发送和接收大数据包相关推荐

  1. 计算机网络课程设计——发送和接收TCP数据包以及发送和捕获ARP数据包

    1.课程设计要求: 发送和接收TCP数据包:TCP是一种面向连接的.可靠的传输层协议.TCP协议工作在网络层IP协议的基础上.本课程设计的目的是设计一个发送和接收TCP数据包的程序,其功能是填充一个T ...

  2. 如何在Linux命令行下发送和接收UDP数据包

    众所周知,在传输层有两个常用的协议 TCP 和 UDP,本文介绍在 Linux 命令行下,如何使用 nc 命令发送或接收 UDP 数据包,这些命令的用法对调试 UDP 通信程序将有所帮助. 1. 问题 ...

  3. 为什么socket接收大数据的时候接收不完全,出现丢包?

    为什么socket接收大数据的时候接收不完全,出现丢包? (1)TCP协议通信,接收方接收数据的前后次序与发送方一致,但数据包不一定一致.打个比方,发送方按顺序发送了2个数据包,接收可能仅接收1次就能 ...

  4. 【python】-- Socket接收大数据

    Socket接收大数据 上一篇博客中的简单ssh实例,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区中,这样就会造成我们想要获取数据的完整 ...

  5. Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)

    1.头文件 #ifndef TCPTOOL_H #define TCPTOOL_H#include <QObject> #include <QTcpSocket> #inclu ...

  6. java发送接收UDP数据包:字符串,byte[]字节数组,文件等

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java发送接收UDP数据包,数据内容为byte[],包括一切可以转换为byte[]的内容. 测试代码 public static void ma ...

  7. QuteCom手记:phapi发送和接收音频数据的流程(ortp portaudio)

    phapi发送和接收音频数据的流程简介. 通过ortp库(完整的源代码在ortp工程中)实现. oRTP协议将在另外一篇中介绍,这里只要知道它是用来发送和接收媒体流(音频和视频)的协议. 本篇只记录使 ...

  8. python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例

    Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...

  9. UnityWebRequest.Post 发送和接收Json数据

    1.C#:发送和接收Json数据 using UnityEngine; using UnityEngine.Networking; using System.Collections; using Un ...

最新文章

  1. oracle01003,ORA-01003:nostatementparsed-Oracle
  2. DivCo: Diverse Conditional Image Synthesis via Contrastive Generative Adversarial Network
  3. 神经网络中归一化的重要作用
  4. 数据库-主键和外键及其约束
  5. [学习笔记] Cordova+AmazeUI+React 做个通讯录 - 单页应用 (With Router)
  6. ArcGIS中合并(merge)、联合(union)、追加(append)、融合(dissolve)的用法区别与联系
  7. spring多个视图解析器_在Spring中配置多个View解析器
  8. linux进程管理类命令大全,Linux进程管理类命令
  9. sklearn.model_selection中train_test_split的坑
  10. PPAS数据库备份与恢复
  11. 一、crontab 定时任务
  12. Android-入门学习笔记-图片和外观改善
  13. Python 之 游戏飞机大战项目实现
  14. java内存模型(netty权威指南)
  15. 10分钟开始使用ICTCLAS Java版
  16. animate.css做点赞效果
  17. java如何获取scanner_java – 使用Scanner获取用户输入
  18. Ribbon负载均衡分析
  19. 【实战总结】根据地图经纬度及范围查询坐标点信息
  20. 推荐9款最佳的编程字体

热门文章

  1. java开发怎么优化代码,代码优化,该如何处理
  2. java切换jdk版本_切换JDK版本quick
  3. libmysqld_dev linux,Linux下python玩转MySQLdb
  4. (贪心)区间问题大致思路
  5. Linux上下载chronyd安装包,如何在Linux中安装和使用Chrony时间同步
  6. 小程序全局悬浮窗_手机控必须知道的“小白点”技巧,错过真是浪费
  7. In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column...
  8. 从键盘上录入学生人数和每个学生的分数,按分数降序输出所有的分数,java冒泡排序应用
  9. 正在从“vetur”获取代码操作_长时间运行 io.Reader 和 io.Writer 操作测算进度和估算剩余时间...
  10. java实现鸭子类型,Golang的interface及duck typing鸭子类型