社区
C#
帖子详情
接收发送udp数据问题
aiolos1
2009-01-12 02:20:48
我将收到的udp数据5min打一个包存入文件,现在想把文件中的udp数据播放出来(send),有其他程序接收,怎么实现?
因为在接收时两个UDP包的时间间隔是500ms,发送的时候就应该thread.sleep(500);怎么才能根据udp包的时间间隔发送?
...全文
108
4
打赏
收藏
接收发送udp数据问题
我将收到的udp数据5min打一个包存入文件,现在想把文件中的udp数据播放出来(send),有其他程序接收,怎么实现? 因为在接收时两个UDP包的时间间隔是500ms,发送的时候就应该thread.sleep(500);怎么才能根据udp包的时间间隔发送?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangshuihua2007
2010-03-30
打赏
举报
回复
study!!!!!!
happychou
2009-01-12
打赏
举报
回复
//解析接收的数据包,形成PacketArrivedEventArgs事件数据类对象,并引发PacketArrival事件
unsafe private void Receive(byte [] buf, int len)
{
byte temp_protocol=0;
uint temp_version=0;
uint temp_ip_srcaddr=0;
uint temp_ip_destaddr=0;
short temp_srcport=0;
short temp_dstport=0;
IPAddress temp_ip;
PacketArrivedEventArgs e=new PacketArrivedEventArgs();//新网络数据包信息事件
fixed(byte *fixed_buf = buf)
{
IPHeader * head = (IPHeader *) fixed_buf;//把数据流整和为IPHeader结构
e.HeaderLength=(uint)(head->ip_verlen & 0x0F) << 2;
temp_protocol = head->ip_protocol;
switch(temp_protocol)//提取协议类型
{
case 1: e.Protocol="ICMP"; break;
case 2: e.Protocol="IGMP"; break;
case 6: e.Protocol="TCP"; break;
case 17: e.Protocol="UDP"; break;
default: e.Protocol= "UNKNOWN"; break;
}
temp_version =(uint)(head->ip_verlen & 0xF0) >> 4;//提取IP协议版本
e.IPVersion = temp_version.ToString();
//以下语句提取出了PacketArrivedEventArgs对象中的其他参数
temp_ip_srcaddr = head->ip_srcaddr;
temp_ip_destaddr = head->ip_destaddr;
temp_ip = new IPAddress(temp_ip_srcaddr);
e.OriginationAddress =temp_ip.ToString();
temp_ip = new IPAddress(temp_ip_destaddr);
e.DestinationAddress = temp_ip.ToString();
temp_srcport = *(short *)&fixed_buf[e.HeaderLength];
temp_dstport = *(short *)&fixed_buf[e.HeaderLength+2];
e.OriginationPort=IPAddress.NetworkToHostOrder(temp_srcport).ToString();
e.DestinationPort=IPAddress.NetworkToHostOrder(temp_dstport).ToString();
e.PacketLength =(uint)len;
e.MessageLength =(uint)len - e.HeaderLength;
e.ReceiveBuffer=buf;
//把buf中的IP头赋给PacketArrivedEventArgs中的IPHeaderBuffer
Array.Copy(buf,0,e.IPHeaderBuffer,0,(int)e.HeaderLength);
//把buf中的包中内容赋给PacketArrivedEventArgs中的MessageBuffer
Array.Copy(buf,(int)e.HeaderLength,e.MessageBuffer,0,(int)e.MessageLength);
}
//引发PacketArrival事件
OnPacketArrival(e);
}
第二给问题可以使用Timer函数,不过数据大的话可能会有问题
greystar
2009-01-12
打赏
举报
回复
不是很明白你的意思.你将搂据放到文件时,可以定义相应的数据结构,就象(数据库里的表).取的时候也方便,为什么要5Min发送一次,如果真的这样,那你使用定时器来发送好的.
liumeiqinyang
2009-01-12
打赏
举报
回复
帮顶上去
FPGA
UDP
发送
数据
PC端一直
接收
不到的
问题
FPGA
发送
UDP
数据
PC端收不到
数据
在测试接受
数据
时,在别的电脑上能收到,我的电脑上就收不到。首先确定代码没
问题
,然后看是不是
UDP
配置时,IP地址弄错了。 ip_header[0]<={16'h4500,tx_total_length}; //版本号:4; 包头长度:20;IP包总长 ip_header[1][31:16]<=ip_header[1]...
lwip可以用于发
udp
_stm32f107调用lwip的
udp
程序
接收
发送
数据
出
问题
。
当把
udp
接收
到的
数据
立刻
发送
回PC,正常。程序如下:void recv_callback_tftp(void *arg, struct
udp
_pcb *upcb, struct pbuf *pkt_buf,struct ip_addr *addr, u16_t port){struct ip_addr devaddr;struct ip_addr destAddr = *addr; /*...
Android使用wifi通过
UDP
协议
发送
广播
数据
包给PC
接收
不到
问题
解决方法
最近在写一个android到PC端的一个通过
UDP
协议传输广播
数据
包的
问题
。 使用自己搭建了一个网络框架: connector = new DM
UDP
Connector(); String ip; try { ip = WifiUtils.getHotspotIPAddress(); } catch (WifiException e) { // TODO Auto-g
java
udp
接收
乱码_一个使用
udp
协议
发送
数据
报时中文为何会成为乱码的
问题
本人使用以下代码从文本框中获取一个String的
数据
,然后再转为byte类型的数组
发送
try{bytedata[]=newbyte[64];msg.getText().getBytes(0,msg.getText().length(),data,0);msg.setText("");InetAddressaddress=InetAddress.getByName(dest_address.g...
三十九、
Udp
网络1:使用socket
发送
、
接收
数据
,绑定端口和中文编码解码
问题
一、初识
Udp
网络
发送
数据
(1)前提:必须要保证他们在同一个局域网中,要在一个网段才行 NetAssist.ext软件是用来协助我们完成网络请求: 网络设置:填写的是自己电脑上的IP地址。 目标主机和目标端口:填写的是你要给谁
发送
的那个人的ip地址和端口号。
发送
的内容:在那个大白框中进行填写。 1、网络调试助手...
C#
111,128
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章