⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zlg_socket.h

📁 arm7 flash down
💻 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 + -