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

📄 tcp.h

📁 非常好用的tcp/udp封装
💻 H
字号:
#ifndef _TCP_H_#define _TCP_H_/***************************************************///  define windows head file/***************************************************/#ifdef  WIN32    #include <stdio.h>      #include <stdlib.h>    #include <string.h>    #include <time.h>    #include <string.h>    #include <winsock2.h>	#include <ws2tcpip.h>    #include <windows.h>    #define  safe_delete(ptr)  {if ((ptr)!=NULL) delete (ptr);}	#define	 GetTime()			GetTickCount()	#define  ioctl		ioctlsocket#endif#ifdef  LINUX		#include  <stdio.h>	#include  <stdlib.h>	#include  <string.h>	#include  <unistd.h>	#include  <sys/time.h>	#include  <sys/types.h>	#include  <sys/socket.h>	#include  <sys/ioctl.h>	#include  <sys/ipc.h>	#include  <sys/msg.h>	#include  <netinet/in.h>	#include  <arpa/inet.h>	#include  <pthread.h>	#include  <netdb.h>		#define   closesocket		close	#define   SOCKADDR_IN		struct sockaddr_in  	#define   SOCKADDR			struct sockaddr	#define   SOCKET			int	#define   SD_BOTH			3	#define   SOCKET_ERROR		-1	#define   INVALID_SOCKET	-1//	unsigned int GetTime(void);#endif#ifdef  uCLINUX	// this include head file is in uClinux-dist/uCLib/inlcude	#include  <stdio.h>	#include  <stdlib.h>	#include  <string.h>	#include  <unistd.h>	#include  <signal.h>	#include  <sys/time.h>	#include  <sys/types.h>	#include  <sys/socket.h>	#include  <sys/ioctl.h>	#include  <sys/ipc.h>	#include  <sys/msg.h>	#include  <netinet/in.h> // this file was modified by li yuan in line 250, and bits/in.h is modified too	#include  <arpa/inet.h>	//#include  <pthread.h>  // disable when use uc-libc	#include  <netdb.h>		#define   closesocket		close	#define   SOCKADDR_IN		struct sockaddr_in  	#define   SOCKADDR			struct sockaddr	#define   SOCKET			int	#define   SD_BOTH			3	#define   SOCKET_ERROR		-1	#define   INVALID_SOCKET	-1	unsigned int	GetTime(void);#endif#define LISTEN_NUM	 10int SockInit(void);int SockClean(void);/*******************************************  TCP Server struct and fucntion*******************************************/struct AcceptSession{	fd_set   		fdset;		SOCKADDR_IN		localaddr;	SOCKADDR_IN		remoteaddr;		SOCKET			sockfd;		struct AcceptSession *next;};struct TcpServer{	fd_set 			fdset;		SOCKADDR_IN		localaddr;	SOCKADDR_IN		remoteaddr;		SOCKET			sockfd;		struct AcceptSession	*session;		};int CreateTcpServer(struct TcpServer *ser, unsigned short localport);struct AcceptSession *AcceptConnect(struct TcpServer *ser, int timeout);int RecvFromSession(struct AcceptSession *session, char *buff, int *recvlen, int timeout);int SendToSession(struct AcceptSession *session, char *buff, int len, int timeout);int DeleteTcpSession(struct AcceptSession *session);/*******************************************  TCP Client struct and fucntion*******************************************/struct TcpClient{	fd_set 			fdset;		SOCKADDR_IN		localaddr;	SOCKADDR_IN		remoteaddr;		SOCKET			sockfd;		unsigned int	connected;	};int CreateTcpClient(struct TcpClient *client, unsigned int serip, unsigned short serport, int timeout);int DeleteTcpClient(struct TcpClient *client);int SendToServer(struct TcpClient *client, char *buff, int len, int timeout);int RecvFromServer(struct TcpClient *client, char *buff, int *recvlen, int timeout);/***************************************************	UDP server***************************************************/struct UdpServer{	fd_set	fdset;		SOCKADDR_IN		localaddr;	SOCKADDR_IN		remoteaddr;		SOCKET	sockfd;};int CreateUdpServer(struct UdpServer*  server, unsigned short serport);int RecvFromClient(struct UdpServer*  server, char* buff);int SendToClient(struct UdpServer* server, char* buff, int len);/***************************************************	UDP client***************************************************/struct UdpClient{	fd_set	fdset;		SOCKADDR_IN		serveraddr;	SOCKADDR_IN		remoteaddr;		SOCKET	sockfd;};int CreateUdpClient(struct UdpClient* client, unsigned int serip, unsigned short serport);int RecvFromUdpServer(struct UdpClient*  client, char* buff);int SendToUdpServer(struct UdpClient* client, char* buff, int len);#endif

⌨️ 快捷键说明

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