commCPU_SUPV/code/general/inc/general_socket.h

248 lines
7.0 KiB
C
Raw Permalink Normal View History

2025-04-30 16:24:29 +08:00
#ifndef GENERAL_SOCKET_123_INCLUDED
#define GENERAL_SOCKET_123_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
#include "glbtypes.h"
#include "gensock2.h"
/*****SOCET<45><54><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>*****/
#define SOCKET_RECVBUF_LEN (12*1024)
/************************* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************************/
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
#define SOCK_STATUS_CONNECT_NOTUSE 0
/***<2A>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
#define SOCK_STATUS_CONNECT_WAIT 1
/***<2A>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>***/
#define SOCK_STATUS_CONNECT_ING 2
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رգ<D8B1><D5A3>ȴ<EFBFBD><C8B4><EFBFBD>ȫ<EFBFBD>ر<EFBFBD>***/
#define SOCK_STATUS_CONNECT_DIS 3
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>***/
#define SOCK_STATUS_CONNECT_ED 4
/************************* <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************************/
/*** <20>˴<EFBFBD><CBB4>ǿգ<C7BF><D5A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD> **/
#define SOCK_STATUS_RECV_WAIT 5
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رգ<D8B1><D5A3>ȴ<EFBFBD><C8B4><EFBFBD>ȫ<EFBFBD>ر<EFBFBD>***/
#define SOCK_STATUS_RECV_DIS 6
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>***/
#define SOCK_STATUS_RECV_ED 7
/************************* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************************/
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
#define SOCK_STATUS_LISN_NOTUSE 0
/*** <20>˴<EFBFBD><CBB4>ǿգ<C7BF><D5A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD> **/
#define SOCK_STATUS_LISN_WAIT 1
/*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***/
#define SOCK_STATUS_LISN_ING 2
/************************* UDP<44><50><EFBFBD><EFBFBD> *****************************/
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
#define SOCK_STATUS_UDP_NOTUSE 0
/*** <20>˴<EFBFBD><CBB4>ǿգ<C7BF><D5A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD> **/
#define SOCK_STATUS_UDP_WAIT 1
/*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***/
#define SOCK_STATUS_UDP_ING 2
/****<2A><><EFBFBD>ӳ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>****/
#define SOCK_CONNECT_WAIT_TIME (10*1000)
/****<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵȴ<D3B5>ʱ<EFBFBD><EFBFBD><E4A3AC>ʱ<EFBFBD><CAB1><EFBFBD>ر<EFBFBD>****/
#define SOCK_CONNECT_ING_TIME (30*1000)
/****<2A><><EFBFBD><EFBFBD><EFBFBD>رյȴ<D5B5><C8B4><EFBFBD><EFBFBD><EFBFBD>ʱǿ<CAB1>ƹر<C6B9>****/
#define SOCK_CONNECT_DIS_TIME (10*1000)
/**** <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD> ****/
#define SOCK_LISTEN_WAIT_TIME (15*1000)
#ifdef WIN32
#define TYTX_SOCK_ESHUTDOWN WSAESHUTDOWN
#else
#define TYTX_SOCK_ESHUTDOWN ESHUTDOWN
#endif
typedef enum{
SOCKET_LINK_MODE_CONN=1,
SOCKET_LINK_MODE_RECV
} SOCKET_LINK_MODE;
/****SOCKET<45><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խṹ<D4BD><E1B9B9>****/
typedef struct
{
SOCKET_LINK_MODE sock_link_mode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listen<65>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
SOCKET sockID; /***SOCKET**/
struct sockaddr_in IPaddr; /**<2A><><EFBFBD>ӶԶ<D3B6><D4B6><EFBFBD><EFBFBD><EFBFBD>**/
ST_INT status; /**<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
ST_DOUBLE operationTime; /**<2A>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>**/
ST_INT lastSendLen;
ST_UINT recvCount; /**<2A><><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>*/
/***<2A><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>Ƚϴ<C8BD><CFB4><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9>û<EFBFBD><C3BB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>?? ***/
ST_INT recvDataLen; /***<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>**/
ST_UCHAR recvDataBuf[SOCKET_RECVBUF_LEN]; /**<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>**/
//֪ͨ<CDA8>ⲿ<EFBFBD><E2B2BF><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
ST_INT flagConnecSuccess;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>SOCKET <20>Զ˵<D4B6>IP<49>Ͷ˿<CDB6>
ST_CHAR ipaddress[32];
ST_INT tcpport;
} SOCKET_LINK_ATTRIB;
//socket<65><74>3<EFBFBD>ࣺconnect<63><74>listen<65><6E>recvconnect
/**** <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****/ //2011-10-26ȡ<36><C8A1><EFBFBD><EFBFBD><EFBFBD><E5A3AC>CONN<4E>ϲ<EFBFBD>ΪLINK<4E><4B><EFBFBD><EFBFBD>mode<64><65><EFBFBD><EFBFBD>
// typedef struct
// {
// SOCKET sockID; /***SOCKET**/
// struct sockaddr_in IPaddr; /**<2A><><EFBFBD>ӶԶ<D3B6><D4B6><EFBFBD><EFBFBD><EFBFBD>**/
//
// ST_INT status; /**<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
// ST_DOUBLE operationTime; /**<2A>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>**/
//
// ST_UINT recvCount; /**<2A><><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>*/
//
// /***<2A><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>Ƚϴ<C8BD><CFB4><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9>û<EFBFBD><C3BB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>?? ***/
// ST_INT recvDataLen; /***<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>**/
// ST_UCHAR recvDataBuf[SOCKET_RECVBUF_LEN]; /**<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>**/
//
// //֪ͨ<CDA8>ⲿ<EFBFBD><E2B2BF><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
// ST_INT flagConnecSuccess;
//
// //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>SOCKET
// ST_CHAR ipaddress[32];
// ST_INT tcpport;
// } SOCKET_RECV_ATTRIB;
/**** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****/
typedef struct
{
SOCKET sockID; /***SOCKET**/
struct sockaddr_in IPaddr; /**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
ST_INT status; /**<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
ST_DOUBLE operationTime; /** <20><>ʱʱ<CAB1><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
/*** <20>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***/
ST_INT maxConnNum; /*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬ָ<EBA3AC><D6B8><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **/
SOCKET_LINK_ATTRIB *recvConnAttrib; /** <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **/
//<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>SOCKET
ST_CHAR ipaddress[32];
ST_INT tcpport;
} SOCKET_LISN_ATTRIB;
/*** UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***/
typedef struct
{
SOCKET sockID; /***SOCKET**/
struct sockaddr_in localAddr; /**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>ȱʧ)**/
ST_INT status; /**<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>û<EFBFBD><C3BB>Ѵ<EFBFBD><D1B4><EFBFBD>**/
ST_DOUBLE operationTime; /** <20><>ʱʱ<CAB1><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
struct sockaddr_in remoteAddr; /** <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**/
ST_CHAR remoteIP[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD>еõ<D0B5>
ST_INT remotePort;
ST_UINT recvCount; /**<2A><><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>*/
ST_INT recvDataLen; /***<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>**/
ST_UCHAR recvDataBuf[SOCKET_RECVBUF_LEN]; /**<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>**/
//<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>SOCKET
ST_CHAR ipaddress[32]; //<2F><><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD>0
ST_INT udpport;
ST_INT ifRemote; //<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>·<EFBFBD>ɣ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ڱ<EFBFBD><DAB1>ع㲥<D8B9><E3B2A5><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD>ʹ<EFBFBD><CAB9>
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<2D>ӽӿ<D3BD><D3BF><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ȡ
//cbt add 2021.1.8 ʹ<><CAB9>eth2<68><32><EFBFBD><EFBFBD>/<2F><><EFBFBD>չ<EFBFBD><D5B9>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD>--eth2<68><32>Ҫ<EFBFBD>߱<EFBFBD>mac<61><63>ip<69><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>
ST_CHAR ipmask[32]; //<2F><><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD>0
ST_CHAR macaddress[32];
ST_CHAR gateway[32];
} SOCKET_UDP_ATTRIB;
/***<2A><><EFBFBD><EFBFBD>: <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ж<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>*****/
ST_RET socket_link_send( SOCKET_LINK_ATTRIB * sock_attrib, ST_UCHAR *sendBuf, ST_INT dataLen );
/*<2A><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*****/
ST_RET socket_link_close_active( SOCKET_LINK_ATTRIB * sock_attrib );
/*<2A><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>SOCKET<45>Ƿ<EFBFBD><C7B7>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD>յ<EFBFBD><D5B5>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>ӵ<EFBFBD>*****/
ST_INT socket_link_check_status( SOCKET_LINK_ATTRIB * sock_attrib_array, ST_INT arrayNum );
/****<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><E1B9B9>**/
ST_RET init_sock_conn_attrib( SOCKET_LINK_ATTRIB * sock_attrib );
ST_RET release_sock_conn_attrib( SOCKET_LINK_ATTRIB * sock_attrib );
/****<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʼ<EFBFBD><CABC> <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1B9B9>**/
ST_RET init_sock_recv_attrib( SOCKET_LINK_ATTRIB * sock_attrib );
ST_RET release_sock_recv_attrib( SOCKET_LINK_ATTRIB * sock_attrib );
/****<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʼ<EFBFBD><CABC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1B9B9>**/
ST_RET init_sock_lisn_attrib( SOCKET_LISN_ATTRIB * sock_attrib );
ST_RET release_sock_lisn_attrib( SOCKET_LISN_ATTRIB * sock_attrib );
/***<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>***/
ST_RET set_sock_lisn_attrib( SOCKET_LISN_ATTRIB * sock_attrib, ST_CHAR *ip_address, ST_INT port,
ST_DOUBLE listen_after_ms, ST_INT maxConnNum, SOCKET_LINK_ATTRIB * link_attrib );
ST_RET set_sock_conn_attrib( SOCKET_LINK_ATTRIB * sock_attrib, ST_CHAR *ip_address, ST_INT port,
ST_DOUBLE connect_after_ms );
/*<2A><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>SOCKET<45>Ƿ<EFBFBD><C7B7>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD>յ<EFBFBD><D5B5>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>ӵ<EFBFBD>*****/
ST_INT socket_listen_check_status( SOCKET_LISN_ATTRIB * sock_attrib );
/******<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʼ<EFBFBD><CABC> UDP<44><50><EFBFBD><EFBFBD> <20><EFBFBD><E1B9B9> ********/
ST_RET init_sock_udp_attrib( SOCKET_UDP_ATTRIB * sock_attrib );
ST_RET release_sock_udp_attrib( SOCKET_UDP_ATTRIB * sock_attrib );
/***<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>IP<49><50><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>****/
ST_RET set_sock_udp_attrib( SOCKET_UDP_ATTRIB * sock_attrib, ST_CHAR *ip_address, ST_INT port,
ST_DOUBLE listen_after_ms, ST_INT ifRemote );
/*****<2A><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD>֡(<28><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>IPΪ<50>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>)*****/
ST_RET socket_udp_send( SOCKET_UDP_ATTRIB * sock_attrib, ST_UCHAR *sendBuf, ST_INT dataLen, ST_CHAR *remoteIP, ST_INT remotePort );
/***<2A><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>UDP<44>Ƿ<EFBFBD><C7B7>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3>*****/
ST_INT socket_udp_check_status( SOCKET_UDP_ATTRIB * sock_attrib_arrary, ST_INT arrayNum );
ST_INT socket_udp_check_status_eth2( SOCKET_UDP_ATTRIB * sock_attrib );
/************************************************************************/
#ifdef __cplusplus
}
#endif
#endif