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

📄 tcptool.c

📁 unix下c语言实现tcp连接函数库
💻 C
字号:
#include <stdio.h>#include <string.h>#include <errno.h>#include <fcntl.h>#include <signal.h>#include <time.h>#include <sys/types.h>#include <sys/wait.h>#include <sys/timeb.h>#include <sys/msg.h>#include <sys/ipc.h>#include <sys/uio.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <netdb.h>#include <wait.h>#include <stdarg.h>#include "mpgfront.h"extern SYSCTRL Termctrl;int TCP_Connect (char  *_ConnectIp ,int  _ConnectPort){        int  	setflag=1;	int  	Socketid;	char 	ConIp[30];        struct sockaddr_in MpsServer;	memset( ConIp, 0x00, sizeof(ConIp));  	memcpy( ConIp,_ConnectIp, 19);        Socketid = socket(AF_INET,SOCK_STREAM,0);        if(Socketid<0){                Errlog(ERRFILE,"Create Socketid error!\n");                return -1;        }        if(setsockopt(Socketid,SOL_SOCKET,SO_KEEPALIVE,&setflag,                        sizeof(setflag))<0) {                close(Socketid);                Errlog(ERRFILE,"setsockopt error!\n");                return -1 ;        }        memset(&MpsServer,0,sizeof(struct sockaddr_in));        MpsServer.sin_family = AF_INET;        MpsServer.sin_port =htons(_ConnectPort);	TrimAll(_ConnectIp);        if(inet_pton(AF_INET,_ConnectIp,&MpsServer.sin_addr)<0){		Errlog(ERRFILE,"Tcp inet_pton error!");                return -1;        }        alarm(3);        if(connect(Socketid,(struct sockaddr *)&MpsServer,sizeof(MpsServer))<0){                close(Socketid);		Errlog(ERRFILE,"tcp connect error!-[%s]--[%d]",				_ConnectIp,_ConnectPort);                return  -1 ;        }        return  Socketid ;}int TCP_Write(int _Socketid, char *_WrtBuf, int _BufLen ){	int	i;	if ((i=write(_Socketid,_WrtBuf,_BufLen))<0){		Errlog(ERRFILE,"Write sockeid [%d] error!",_Socketid);		return -1;	}	return i;}int TCP_Read(int _Socketid, char *_ReadBuf, int _BufLen ){	int	i;	int	pos;	char	TmpBuf[2048];	pos=0;	while ( 1 ){				memset( TmpBuf, 0x00, sizeof(TmpBuf));		alarm(5);		if ((i=read(_Socketid,TmpBuf,_BufLen))<=0){			Errlog(ERRFILE,"read  sockeid [%d] error!",_Socketid);			return pos;		}		memcpy(_ReadBuf+pos,TmpBuf,i);		pos+=i;		if ( pos >= _BufLen)			return pos;	}}

⌨️ 快捷键说明

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