📄 udp.h
字号:
/* udpServer.c - UDP server example */
/*
DESCRIPTION
This file contains the server-side of the vxWorks UDP example code.
The example code demonstrates the usage of several BSD 4.4-style
socket routine calls.
*/
#ifndef _UDP_H
#define _UDP_H
#ifdef __cplusplus
extern "C" {
#endif
#include "Macro.h"
extern void Udp_GlobalSet( WORD nServerNum, WORD nConnNum );
extern short Udp_AddServer( BYTE *ServerIP, WORD wPort );
extern short Udp_AddConnection( short iSvrNo, BYTE *ClientIP, WORD wClientPort, short *piGroupNo );
extern BOOLEAN Udp_SetConnPort( short iConnNo, WORD wClientPort );
extern BOOLEAN Udp_GetConnNo( short iSvrNo, DWORD dwClientIP, WORD wPort, short *pwConnNo, short *pwGroupNo );
extern int Upd_Sendto ( short iConnNo,BYTE* pbyBuff,WORD wLen );
extern WORD Udp_ReadMsg( short iGroupNo, short *piConnNo, BYTE *pbyMsgBuf, WORD wBufLen, WORD *pwRead, WORD *pwQueueIDRead );
typedef struct sockaddr tagSockAddr; // 用于存储套接字地址结构体的一般形式
typedef struct sockaddr * tagPSockAddr; // 用于存储套接字地址结构体的指针形式
typedef struct sockaddr_in tagSockAddrIn; // 用于存储一个IP地址和端口号
typedef struct sockaddr_in * tagPSockAddrIn; // 用于存储一个IP地址和端口号的指针形式
typedef struct in_addr tagIn_Addr; // inet address
//=============================================================================
#define C_UDP_NUM_SVR ( 8) // UDP 连接最大服务器数目
#define C_UDP_NUM_CONN ( 16) // UDP 连接最大组数
#define C_UDP_VOL_BUF (512) // 一个UDP报文的最大长度
typedef struct { // UDP 连接组参数信息
short iSvrNo; // 服务器编号即数组下标
short iGroupNo; // 连接组号(动态生成)
DWORD dwClientIP; // 客户机IP
WORD wClientPort; // 客户机端口号(动态更新)
}tagUdpConn, *tagPUdpConn;
typedef struct { // UDP 服务器参数信息
WORD wPort; // UDP 连接网络端口号
DWORD dwServerIP; // 服务器IP关键字
int iSockFD; // 套接字编号
}tagUdpServer, *tagPUdpServer;
typedef struct
{
short nConnMaxNum; // 链接最大数目
short nConnNum; // 链接数目
short nServerMaxNum; // 服务器最大数目
short nServerNum; // 服务器数目
short nGroupNum; // 链接组数目
tagUdpConn tConnArray[C_UDP_NUM_CONN]; // 链接组队列
tagUdpServer tSvrArray[C_UDP_NUM_SVR]; // 服务器队列
}tagUdpCtrl;
typedef struct { // UDP 报文控制信息结构
WORD wQueueID; // 报文ID
WORD wConnNo; // 报文所对应的UDP连接序号
WORD wGroupNo; // 报文所对应的UDP组号
WORD wLength; // 报文长度
WORD wHead; // 报文头指针
WORD wRear; // 报文尾指针
WORD wCRC; // 报文内容校验码
WORD wTag; // 报文附加属性
}tagUdpMsgCtrl, *tagPUdpMsgCtrl;
typedef struct { // 上行中转报文队列
tagQueueCtrl tQueueCtrl; /* 队列控制变量 */
tagUdpMsgCtrl tUdpMsgCtrl[CONST_NUM_RPTU]; /* 报文控制变量 */
BYTE byReportBuf[CONST_VOL_RPTU]; // 中转报文缓冲区
}tagQueueUdpMsg, *tagPQueueUdpMsg;
#ifdef __cplusplus
}
#endif
#endif //_UDP_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -