📄 zlg_socket.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: zlg_socket.h
** Last modified Date: 2004-11-27
** Last Version: 1.0
** Descriptions: socket HEAD FILE
**
**------------------------------------------------------------------------------------------------------
** Created By: Yehaoben
** Created date: 2004-11-27
** Version: 1.0
** Descriptions: First version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#ifdef SOCKET_GLOBALS
#define SOCKET_EXT
#else
#define SOCKET_EXT extern
#endif
#define PF_INET 0
#define AF_INET 1
#define SOCK_STREAM 0
#define SOCK_DGRAM 1
#define TCP_PROTOCOL 0
#define UDP_PROTOCOL 1
#ifndef MAX_TCP_LINKS
#define MAX_TCP_LINKS 0
#endif
#ifndef MAX_UDP_LINKS
#define MAX_UDP_LINKS 0
#endif
#define MAX_SOCKETS MAX_TCP_LINKS+MAX_UDP_LINKS
#define INVALID_SOCKET NULL
#define SOL_SOCKET 1
#define SOL_IPROTO_TCP 2
/* SOL_SOCKET层的信息 */
#define SO_ACCEPTCONN 1 /* TYPE:BOOL 接口正在监听 0:监听;1:非监听 */
#define SO_BROADCAST 2 /* TYPE:BOOL 设置为发送广播包,仅为UDP有效 0:广播;1:非广播*/
#define SO_TYPE 3 /* TPYE:int SOCK_STREAM */
/* SOL_IPROTO_TCP层的信息 */
#define SO_TCP_STATUS 1 /* TPYE:uint8 TCP的连接状态,1:关闭状态;2:监听状态;3:连接状态;4:断开状态 */
/********************************************************************************************************
** Structure Define
********************************************************************************************************/
typedef struct {
uint8 State;
uint16 protocol;
uint16 af;
uint16 type;
uint8 My_Ip[4];
uint16 My_Port;
uint16 Max_Queue;
uint8 queue[MAX_TCP_LINKS];
uint8 Udp_Queue;
}SOCKET;
struct sockaddr{
uint16 sin_family;
uint8 sin_addr[4];
uint16 sin_port;
};
/********************************************************************************************************
** Global Variables Define
********************************************************************************************************/
SOCKET_EXT SOCKET Zlg_Socket[MAX_SOCKETS];
/********************************************************************************************************
** Function Define
********************************************************************************************************/
SOCKET_EXT uint8 close(uint8 num);
SOCKET_EXT uint8 connect(SOCKET * s, struct sockaddr * addr,uint16 addrlen);
SOCKET_EXT SOCKET *socket( uint16 af, uint16 type, uint16 protocol);
SOCKET_EXT int bind( SOCKET * s, struct sockaddr * name,uint16 namelen);
SOCKET_EXT int listen( SOCKET * s, uint16 backlog );
SOCKET_EXT uint8 accept( SOCKET * s, struct sockaddr * addr, int *addrlen );
SOCKET_EXT uint16 recv( uint8 num, uint8 *buf, uint16 len, int flags );
SOCKET_EXT uint32 send( uint8 num, uint8 *buf, uint32 len, int flags );
SOCKET_EXT uint16 sendfrm( uint8 num, uint8 *buf, uint16 len, int flags );
SOCKET_EXT uint16 recvfrom( SOCKET s, uint8 *buf, uint16 len, int flags, struct sockaddr *from, uint16 *fromlen );
SOCKET_EXT uint16 sendto( SOCKET s, uint8 *buf, uint16 len, int flags, struct sockaddr *to, uint16 tolen );
SOCKET_EXT int closesocket( SOCKET s );
SOCKET_EXT void getlocalip(uint8 * outptr,uint8 num);
SOCKET_EXT int getpeername( SOCKET s, struct sockaddr *name,int *namelen);
SOCKET_EXT int getsockname( SOCKET *s, struct sockaddr * name,int *namelen);
SOCKET_EXT int getsockopt( SOCKET *s, int level, int optname, uint8 *optval, int *optlen);
SOCKET_EXT uint8 getsocktcpsta( uint8 linknum);
SOCKET_EXT int getsockcliaddr( uint8 linknum, struct sockaddr * addr,int * addrlen);
SOCKET_EXT uint32 htonl( uint32 hostlong);
SOCKET_EXT uint16 htons( uint16 hostshort);
SOCKET_EXT uint32 inet_addr(char * inaddr);
SOCKET_EXT void inet_ntoa(uint8 *in , char * out);
SOCKET_EXT uint32 ntohl(uint32 netlong);
SOCKET_EXT uint16 ntohs(uint16 netlong);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -