资源简介
Vxworks下UDP收发与组播收发例程源码,也可用于Linux或者其它平台。
代码片段和文件信息
#include “vxWorks.h“
#include “sockLib.h“
#include “inetLib.h“
#include “stdioLib.h“
#include “strLib.h“
#include “ioLib.h“
#include “fioLib.h“
#include “UDP.h“
int sFd = 0; /* Socket描述符 */
/****************************************
函数名称:void InitUdpSocket()
返回值:无
入参: 无
函数描述:初始化Udp的Socket具体包含以下操作:
1、创建Socket;
2、绑定Server端的地址。
****************************************/
void InitUdpSocket()
{
struct sockaddr_in LocalAddr; /* 服务器端的socket地址信息*/
int sockAddrSize; /* size of socket address structure */
/* 初始化地址 */
sockAddrSize = sizeof (struct sockaddr_in);
bzero ((char *) &LocalAddr sockAddrSize);
LocalAddr.sin_len = (u_char) sockAddrSize;
LocalAddr.sin_family = AF_INET;
LocalAddr.sin_port = htons (5500);
//LocalAddr.sin_addr.s_addr = htonl (INADDR_ANY);
LocalAddr.sin_addr.s_addr = inet_addr (“192.168.3.235“);
/* 创建Socket */
if((sFd = socket(AF_INETSOCK_DGRAM0)) == ERROR)
{
printf(“\r\n[ERROR]:socket() error in InitUdpSocket()!“);
}
#if 1
/* bind socket to local address */
if (bind (sFd (struct sockaddr *)&LocalAddr sockAddrSize) == ERROR)
{
printf(“\r\n[ERROR]:bind() error in InitUdpSocket()!“);
close (sFd);
}
#endif
#if 0
if(setsockopt(sFd IPPROTO_IP IP_MULTICAST_IF (char *)&LocalAddr sizeof(LocalAddr)) == ERROR)
{
printf(“First Setsockopt Error!\n“);
}
else
{
printf(“First Setsockopt Ok!\n“);
}
#endif
}
/****************************************
STATUS udpServer (UINT8 *pRcvDataUINT32 RcvDataLenUINT32 Port)
返回值:ERROR ---接收失败; 非ERROR ---接收成功,接收到的字节个数
入参:pRcvData ---接收到的数据指针
Port ---接收的端口号
函数描述:Udp的接收函数
****************************************/
STATUS udpServer (UINT8 *pRcvDataUINT32 Port)
{
struct sockaddr_in clientAddr; /* 客户端的socket地址信息 */
int sockAddrSize; /* size of socket address structure */
int Ret = 0;
bzero((UINT8*)&clientAddr sizeof(clientAddr));
sockAddrSize = sizeof(clientAddr);
Ret = recvfrom (sFdpRcvData10240(struct sockaddr *)&clientAddr&sockAddrSize);
if(Ret == ERROR)
{
printf(“\r\n[ERROR]:recvfrom() error!“);
close (sFd);
return (ERROR);
}
return (Ret);
}
/****************************************
函数名称:STATUS udpClient(char * serverNameUINT16 Port UINT8* sndDataUINT32 lenth)
返回值:0 ---发送成功; 非0 ---发送失败
入参:serverName ---接收端(Server)的IP地址
Port ---端口号
sndData ---要发送数据的指针
lenth ---要发送的数据字节个数
函数描述:Udp的发送函数
****************************************/
STATUS udpClient(char * serverNameUINT16 Port UINT8* sndDataUINT32 lenth)
{
struct sockaddr_in serverAddr; /* server‘s socket address */
int
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9304 2018-07-16 20:17 udp\UDP.c
文件 301 2015-10-10 15:31 udp\UDP.h
目录 0 2018-07-03 13:47 udp
----------- --------- ---------- ----- ----
9605 3
- 上一篇:zkui-2.0 zookeeper可视化管理器
- 下一篇:WEBRTC多人视频通话
相关资源
- S3C44b0上移植vxworks操作系统的bsp
- QT实现UDP通信
- Qt+Tcp+udp调试工具
- 基于UDP SOCKET 统计丢包率
- udp flood攻击
- UDP P2P透防火墙关键技术DELPHI版
- Linux下基于UDP的socket编程,适用多客户
- 端口扫描TCP扫描UDP扫描TCP多线程扫描
- Vxworks7.0.txt
- 基于NS2仿真组播路由协议实现的实验
- UDP协议下基于Labview的文件传输
- 基于UDP和TCP的Socket编程文件传输,D
- DSP-TMSC6678UDP文件传送
- 基于UDP的P2P小Demo (穿透NAT)delphi源码
- VxWorks下串口通信程序
- 串口 网络调试工具
- esp8266的SDK开发 TCP、UDP服务器端
- udp发送接收图片含demo
- 5个qt多线程
- 原创 qt 组播实现的屏幕共享程序
- 实验2,TCP+UDP通信实验
- 基于UDP,P2P的网络通信
- 新版sockettool for mac
- PowerPC / vxWorks 一
- udp分包组包通信
- linux ipv6简单tcp/udp socket通信
- 最好用的TCP+UDP+UART调试工具
- TCP_UDP_PerformanceTest.exe
- vxworks培训学习资料
- TCP/UDP/ICMP/IGMP发包工具
评论
共有 条评论