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

📄 os_socket.h

📁 linux
💻 H
字号:
#ifndef __OS_SOCKET_H__#define __OS_SOCKET_H__#ifdef __cplusplusextern "C" {#endiftypedef unsigned short OS_SOCKET_PORT;typedef unsigned long OS_IPV4_ADDR;/* Defaults */#define     OS_ANY_PORT                       0#if (__OS_TYPE__ == __OS_WIN32__)	#include <winsock.h>	#pragma comment(lib,"ws2_32.lib")   typedef SOCKET OS_SOCKET ;#define     OS_IPPROT_TCP                    SOCK_STREAM#define     OS_IPPROT_UDP                   SOCK_DGRAM		#define PRINTERROR(s)	\		fprintf(stderr,"\n%: %d\n", s, WSAGetLastError())			#define OS_SocketInit() do{\		WSADATA wsaData;\		WORD wVersionRequested = MAKEWORD(1,1);\		int nRet;\		nRet = WSAStartup(wVersionRequested, &wsaData);\		if (wsaData.wVersion != wVersionRequested)\		{	\			fprintf(stderr,"\n Wrong version\n");\			return -1;\		}\	}while(0)			#define OS_SocketClear() WSACleanup()		#define OS_SocketClose(s) closesocket(s)      #define OS_GetIpByHost Win32GetIpByHost 	#elif (__OS_TYPE__ == __OS_LINUX__)  #include <sys/socket.h>  #include <netinet/in.h>     #include <errno.h>  #include <netdb.h>     #include <signal.h>#define     OS_IPPROT_TCP                    SOCK_STREAM#define     OS_IPPROT_UDP                   SOCK_DGRAM     #define PRINTERROR(s)			perror(s)		  typedef int OS_SOCKET ;        #define SOCKET_ERROR (-1)  #define INVALID_SOCKET (-1)		#define OS_SocketClose(s) close(s)		#define OS_SocketInit() signal(SIGPIPE,SIG_IGN)	#define OS_SocketClear()        #define OS_GetIpByHost LinuxGetIpByHost 	#endif/* 从一个socket 读出对端的地址,以长整型数字表示*/extern OS_IPV4_ADDR OS_GetPeerAddr(OS_SOCKET sock);/* 取得本机的IP地址*/extern OS_IPV4_ADDR OS_GetLocalAddr();extern OS_STATUS OS_OpenSocketServer(OS_SOCKET * p_sock,int prot_type, OS_SOCKET_PORT server_port);extern OS_STATUS OS_OpenSocketClient(OS_SOCKET * p_sock,int prot_type,char * server_addr,OS_SOCKET_PORT server_port ,OS_SOCKET_PORT client_port);extern OS_STATUS OS_OpenUDPBroadCast(OS_SOCKET * p_sock,OS_SOCKET_PORT bind_port);extern OS_STATUS OS_SendUDP(OS_SOCKET sock,char * addr,OS_SOCKET_PORT port,char * buffer,int len);extern OS_STATUS OS_GetIpByHost(char * host_addr,char * ip_addr,int ip_len);#define OS_OpenTCPServer(sock,port) OS_OpenSocketServer(sock,OS_IPPROT_TCP,(OS_SOCKET_PORT)port)#define OS_OpenUDPServer(sock,port) OS_OpenSocketServer(sock,OS_IPPROT_UDP,(OS_SOCKET_PORT)port)#define OS_OpenTCPClient(cli,addr,port) OS_OpenSocketClient(cli,OS_IPPROT_TCP,addr,(OS_SOCKET_PORT)port,OS_ANY_PORT)#define OS_OpenUDPClient(cli,addr,port) OS_OpenSocketClient(cli,OS_IPPROT_UDP,addr,(OS_SOCKET_PORT)port,OS_ANY_PORT)#ifdef __cplusplus}#endif#endif /* __OS_SOCKET_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -