UDP Socket接收大量数据异常
新手一枚,最近做一个从安卓摄像头传输实时图像到PC端。
安卓方面用UDP传输,采用图片的方式一帧一帧传输,安卓端发送数据包是大概每隔200ms一次,每次大概10KB左右。
PC端采用如下方式接收。
TRACE出的结果如下:
delta=31
delta=16
delta=15
delta=0
delta=16
delta=1156
delta=16
delta=15
delta=16
delta=609
delta=94
delta=1110
delta=46
delta=1891
delta=47
delta=16
delta=15
delta=16
用wireshark抓包,也是发现每隔7个包左右就会出现1~3s的时间内什么都收不到。而且这7个包之间的间隔3ms左右。不是像安卓端均匀的200ms。不知道怎么回事。
请大侠们帮忙看下。感谢~
安卓方面用UDP传输,采用图片的方式一帧一帧传输,安卓端发送数据包是大概每隔200ms一次,每次大概10KB左右。
PC端采用如下方式接收。
while(true)
{
int i=0;
result = recvfrom(socket,recvBuff,sizeof(recvBuff),0,(sockaddr*)&(pThis->sockFrom),&len); //接收数据,recvbuff开了50000字节
if(SOCKET_ERROR == result)
{
break;
}
pThis->dbg_timeaft=GetTickCount();
DWORD deltaRecv=pThis->dbg_timeaft-pThis->dbg_timepre;
pThis->dbg_timepre=pThis->dbg_timeaft;
CString str;
str.Format("delta=%d\n",deltaRecv);//打印时间间隔
TRACE(str);
memcpy_s(tempBuff,sizeof(recvBuff),recvBuff,result);
//pThis->ImageFromStream((BYTE*)tempBuff,result);
pThis->m_handleData.data=(BYTE*)tempBuff;
pThis->m_handleData.size=result;
::PostMessage(hWnd,WM_RECVDATA,0,LPARAM(&(pThis->m_handleData))); //把WM_RECVDATA消息压入window消息队列,这里丢数据出去处理为图像
memset(recvBuff,0,sizeof(recvBuff)); //memset函数用于初始化buffer区
}TRACE出的结果如下:
delta=31
delta=16
delta=15
delta=0
delta=16
delta=1156
delta=16
delta=15
delta=16
delta=609
delta=94
delta=1110
delta=46
delta=1891
delta=47
delta=16
delta=15
delta=16
用wireshark抓包,也是发现每隔7个包左右就会出现1~3s的时间内什么都收不到。而且这7个包之间的间隔3ms左右。不是像安卓端均匀的200ms。不知道怎么回事。
请大侠们帮忙看下。感谢~
...全文
相关推荐
UDP socket 多线程
UDP多线程通信 保存数据
c# UDP 开发
确保在运行这些程序之前,UDP服务器正在监听相应的端口,否则发送方可能会抛出异常。此外,如果你需要处理并发连接或者是大量数据的传输,你可能需要使用异步方法或者调整超时设置等。实例,然后将消息编码并发送到指定的服务器IP地址和端口。接收方同样创建了一个。实例,监听指定的端口,并在有消息到达时接收和解码消息。在这个例子中,发送方创建了一个。在C#中使用UDP进行开发,你可以使用。
C#中Socket实现UDP通信的详细指南
网络通信是计算机网络中数据交换的方式,对于现代软件开发至关重要。它涉及数据如何在网络中的不同计算机或设备间传输,而C#作为一种强大的编程语言,提供了多种工具和库来支持网络通信的实现。多播是一种网络通信方式,允许将信息从一个发送者发送到多个接收者。这对于某些应用来说非常有用,比如分布式系统中的服务发现。
Python基于socket模块实现UDP通信功能示例
主要介绍了Python基于socket模块实现UDP通信功能,结合实例形式分析了Python使用socket模块实现IPV4协议下的UDP通信客户端与服务器端相关操作技巧,需要的朋友可以参考下
android udp socket通讯
能够进行UDP简单的通讯,具体用处希望各位自己进行扩展。


网络编程
