socket 问题

问题描述

socket程序,在笔记本上运行时不会出现数据接受延时问题,但放在嵌入式机器上会出现3-4秒的延时,导致绘图延时,除了硬件的原因,还有可能是哪方面的原因,比如缓冲区

解决方案

解决方案二:
voidReaData(){while(true){//Thread.Sleep(3);data=newbyte[1024*3];//data=newbyte[1024*2];intbytes=newclient.Receive(data);if(bytes<=0)break;stringst=HexCon.ByteToString(data);stringt1=DateTime.Now.ToString("yyyyMMddHHmmss-ffff");stringt2="00";stringt3="00";string[]stringSplit=newstring[]{"02806E01B0B500"};//stringtempData=HexCon.ByteToString(readbytes);//sw.Write(tempData+"rn");stringtempData=st;//sw.WriteLine(tempData);stringstringTemp=string.Empty;stringstringNext=string.Empty;intindex=tempData.IndexOf("0000");//获取有效字符串if(index>0){tempData=tempData.Substring(0,index);}intexists=tempData.IndexOf("02806E01B0B500");if(exists>0)//如果有效字符串中有找到的报文头{string[]dataArry=tempData.Split(stringSplit,StringSplitOptions.None);//按报文头分割for(inti=0;i<dataArry.Length;i++){stringsp=dataArry[i].Trim();if(sp.Length==1094)//如果字符串长度等于去掉报文头后的1095个字符长度{stringTemp="02806E01B0B500"+sp;//最终一组有效字符串}elseif(sp.Length<1094)//如果字符串长度小于去掉报文头后的1095个字符长度则等待第二组数据并取第二组分割后数据的第一个字符串数组{//stringNext="02806E01B0B500"+sp;if(stringNext!=string.Empty){stringTemp=stringNext+""+sp;stringNext=string.Empty;}}if(stringTemp!=string.Empty&&stringTemp.Length==1115){//t2=DateTime.Now.ToString("yyyyMMddHHmmss-ffff");//swt.WriteLine(t1+","+t2);RealString=stringTemp;int[]tmp=newint[181];tmp=Sick.GetData(RealString);PerScanData=Sick.GetXY(tmp,Sick.Left_Ang,Sick.Down_Ang,Sick.Sick_Height,Sick.left_Dis);panel1.Invalidate();//sw1.WriteLine(stringTemp);}}}}}

时间: 2024-10-25 21:47:02

socket 问题的相关文章

php使用socket编程的示例

 这篇文章主要介绍了php使用socket编程的示例,大家参考使用吧 2个php测试文件 server.php     代码如下: <?php //phpinfo(); //确保在连接客户端时不会超时 set_time_limit(0);   $ip = '127.0.0.1'; $port = 1935;   /*  +-------------------------------  *    @socket通信整个过程  +-------------------------------  *

网络编程Socket

 网络模型 OSI参考模型 TCP/IP参考模型 可以上网脑补 学的网络编程主要在应用层(我想android.JavaWeb.QQ.梦幻西游等吧,估计是).传输层和网际层混,每个层都有自己的协议规则. 传输层主要用TCP(同步:面向连接,数据量大).UDP(异步:面向无连接,大小限制在64k内,QQ聊天.网络视频用的UDP) 网际层主要用IP协议 应用层协议:HTTP 网络通讯要素 IP地址:标识网络上的电脑的,相当于给电脑取个唯一的名字   192.168.1.1,最大只能设置255这是字

续实例解析SOCKET编程模型之异步通信篇(上)

编程|异步 .NET 框架的 Socket 类实际上是 Winsock32 API 提供的套接字服务的托管代码版本.其中Socket 类为网络通信提供了一套丰富的方法和属性,大多数情况下,Socket 类方法只是将数据封送到它们的本机Win32 副本中并处理任何必要的安全检查.Socket 类允许使用 ProtocolType 枚举中所列出的任何一种协议执行异步和同步数据传输.Socket 类遵循异步方法的 .NET Framework 命名模式:例如,同步 Receive 方法对应于异步 Be

续实例解析SOCKET编程模型之异步通信篇(下)

编程|异步 异步客户端套接字在等待网络操作完成时不挂起应用程序.相反,它使用标准 .NET Framework 异步编程模型在一个线程上处理网络连接,而应用程序继续在原始线程上运行.异步套接字适用于大量使用网络或不能等待网络操作完成才能继续的应用程序. Socket 类遵循异步方法的 .NET Framework 命名模式:例如,同步 Receive 方法对应异步 BeginReceive 和 EndReceive 方法. 异步操作要求回调方法返回操作结果.如果应用程序不需要知道结果,则不需要任

socket programming example

1. 头文件 vi server.h  // 头文件 // 注册信号处理函数 int catch_signal(int sig, void (*handler) (int)); // 从socket读数据到char *buf int read_in(int socket, char *buf, int len); // 错误函数, 当exit_val=0只输出错误信息, 不退出程序. 其他值输出错误信息并退出程序 void error(char * msg, int exit_val); //

Java socket编程入门

编程 第一章:学习提示 我适合学习这份教程吗 Socket提供了两台计算机之间进行通讯的机制,在James Gosling注意Java语言之前就已经很闻名了.Java语言使你更简单有效的使用Socket开发而无需了解操作系统的底层机制.大部分讨论Java编码的书籍都没有涉及这一主题,或者是只是"点到为止",留给读者大量的想象空间.这份教程就是让你了解在你的Java代码中如何更有效的使用Socket所需的知识.包含以下内容: •什么是Socket •它位于你的应用程序的哪些地方 •能正常

Java socket编程入门[1]

编程 第一章:学习提示 我适合学习这份教程吗 Socket提供了两台计算机之间进行通讯的机制,在James Gosling注意Java语言之前就已经很闻名了.Java语言使你更简单有效的使用Socket开发而无需了解操作系统的底层机制.大部分讨论Java编码的书籍都没有涉及这一主题,或者是只是"点到为止",留给读者大量的想象空间.这份教程就是让你了解在你的Java代码中如何更有效的使用Socket所需的知识.包含以下内容:•什么是Socket•它位于你的应用程序的哪些地方•能正常运行的

andord socket连接网站,怎么获取网页数据

问题描述 andord socket连接网站,怎么获取网页数据 可以连上baidu.com ,但是到readline(),就卡助了...怎么获取数据阿,或者是显示出百度的主页,求救

很幽默的讲解六种Socket I/O模型

很幽默的讲解六种Socket I/O模型   信息来源:幻影论坛     作 者: flyinwuhan (制怒·三思而后行) 本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教. 一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系

linux-Linux c socket抓取网页保存到文件一直是乱码

问题描述 Linux c socket抓取网页保存到文件一直是乱码 如题,建立连接后发送请求后,保存到文件的代码如下: while(recvSize=recv(sockfdrecvBufBUF_SIZE0)>0){ fwrite(recvBufsizeof(char)strlen(recvBuf)fp); printf(""%s""recvBuf); memset(recvBuf0sizeof(recvBuf)); } 网页可以在终端上正常显示,但是这样保存到