optical/NxFuncs/network/udptrans.c
2025-09-04 09:45:08 +08:00

99 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "udptrans.h"
typedef struct
{
int socketSn;
u32 localIP;
u32 localPort;
u32 remoteIP;
u16 remotePort;
}UdpCtrl;
UdpCtrl g_udpCtrl;
//-------------------------------------------
#if (UDP_NUM > 0)
//-------------------------------------------
SocketCtrl g_udpSocket[UDP_NUM] =
{
{UDP_COMM, STA_INIT, UDP_SN_BEG+0, UDP_LOCAL_PORT_BEG+0},
#if (UDP_NUM > 1)
{UDP_COMM, STA_INIT, UDP_SN_BEG+1, UDP_LOCAL_PORT_BEG+1},
#endif
#if (UDP_NUM > 2)
{UDP_COMM, STA_INIT, UDP_SN_BEG+2, UDP_LOCAL_PORT_BEG+2},
#endif
#if (UDP_NUM > 3)
{UDP_COMM, STA_INIT, UDP_SN_BEG+3, UDP_LOCAL_PORT_BEG+3},
#endif
#if (UDP_NUM > 4)
{UDP_COMM, STA_INIT, UDP_SN_BEG+4, UDP_LOCAL_PORT_BEG+4},
#endif
#if (UDP_NUM > 5)
{UDP_COMM, STA_INIT, UDP_SN_BEG+5, UDP_LOCAL_PORT_BEG+5},
#endif
#if (UDP_NUM > 6)
{UDP_COMM, STA_INIT, UDP_SN_BEG+6, UDP_LOCAL_PORT_BEG+6},
#endif
#if (UDP_NUM > 7)
{UDP_COMM, STA_INIT, UDP_SN_BEG+7, UDP_LOCAL_PORT_BEG+7},
#endif
};
#endif
void InitUdpTrans(void)
{
g_udpCtrl.socketSn = UDP_SN_BEG;
g_udpCtrl.localIP = UDP_LOCAL_IP;
g_udpCtrl.localPort = UDP_LOCAL_PORT_BEG;
g_udpCtrl.remoteIP = UDP_REMOTE_IP;
g_udpCtrl.remotePort = UDP_REMOTE_PORT;
}
int UdpTransData(u8 * pBuff, int len)
{
int rslt;
rslt = sendto(g_udpCtrl.socketSn, pBuff, len, (u8*)(&g_udpCtrl.remoteIP), g_udpCtrl.remotePort);
return rslt;
}
int UdpRecvData(u8 * pBuff, int len)
{
int rslt;
u32 ip;
u16 port;
rslt = recvfrom(g_udpCtrl.socketSn, pBuff, len, (u8*)(&ip), &port);
/*
// ¸üжԷ½IP ºÍ PORT
g_udpCtrl.remoteIP;
g_udpCtrl.remotePort;
*/
return rslt;
}
SocketCtrl * GetUdpCtrlFromSocketId(int sIdx)
{
#if (UDP_NUM > 0)
if (sIdx < UDP_NUM)
{
return &(g_udpSocket[sIdx]);
}
else
#endif
{
return NULL;
}
}