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

📄 tcp_send.c

📁 与远程服务期的指定端口建立连接并发送测试数据
💻 C
字号:
#include <stdlib.h>#include <ctype.h>#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>#include <netdb.h>#include <unistd.h>#define DEFAULT_PORT 14000#define DEFAULT_PROTO SOCK_STREAM // TCP#define SOCKET_ERROR -1int main(int argc, char **argv) {	char Buffer[1024];	char *server_name ;	//char *server_name;	unsigned short port = DEFAULT_PORT;	int retval, loopflag=0;	int i, loopcount,maxloop=-1;	int error_level=0;	unsigned int addr;	int socket_type = DEFAULT_PROTO;	struct sockaddr_in server;	struct hostent *hp;	//WSADATA wsaData;	int  conn_socket;	struct in_addr *hipaddr;	server_name = (char*)malloc(20);	sprintf(server_name,"localhost");	if (argv[1])	{	server_name = argv[1];	}	if (argc>2)	{	port = atoi(argv[2]);	} printf("usage: TCP_Send <server name> <tcp port>\n");printf("the server name is:%s:%d\n",server_name,port);	if (isalpha(server_name[0])) 	{   /* server address is a name */		hp = gethostbyname(server_name);		memset(&server,0,sizeof(server));		memcpy(&(server.sin_addr),hp->h_addr,hp->h_length);		server.sin_family = hp->h_addrtype;		server.sin_port = htons(port);	}	else  	{ /* Convert nnn.nnn address to a usable one */		if( (addr = inet_addr(server_name)) == -1) 		{			printf("the IP address should be a.b.c.d.\n");		  exit(2);		}		if((hp = gethostbyaddr((char *)&addr,4,AF_INET))==NULL)		{			server.sin_family = AF_INET;		  server.sin_port = htons(port);  		inet_aton(server_name, &server.sin_addr);		}		else		{			memset(&server,0,sizeof(server));			memcpy(&(server.sin_addr),hp->h_addr,hp->h_length);			server.sin_family = hp->h_addrtype;			server.sin_port = htons(port);		}			}	conn_socket = socket(AF_INET,socket_type,0); /* Open a socket */	if (conn_socket <0 ) 	{		fprintf(stderr,"\nClient: Error Opening socket: Error %d\n",errno);		return -1;	}	else	{		fprintf(stderr,"\nClient: Opening socket OK");	}	printf("\nClient connecting to: %s\n",server_name);	if (connect(conn_socket,&server,sizeof(server))		== SOCKET_ERROR) 	{		fprintf(stderr,"\nconnect() failed: %d\n",errno);		perror("Error()");		return -1;	}	else	{		fprintf(stderr,"\nClient: Connect socket OK");	}	loopcount = 0; 	//int x=-1;	for (int x=1;x<=1000;x++)	{				//sleep(1);		//sprintf(Buffer,"TCP_send test_%d error:%d,%d\r\n",x,error_level,maxloop );		sprintf(Buffer,"GREQ 1.00 RofinSinar***** VE    i_greq_cid 'LAS1PC19'\r\n");		retval = send(conn_socket,Buffer,strlen(Buffer),0);		if (retval == SOCKET_ERROR)		{			fprintf(stderr,"\nsend() failed: error %d",errno);			return -1;		}		printf("\nSuccessfull sent of data [%s],%d",Buffer,x);		//sleep(1);		sprintf(Buffer,"GREQ 1.00 RofinSinar***** VE    i_greq_las 'A5E003311471004' ERZEUGNISDATEN 1\r\n");		retval = send(conn_socket,Buffer,strlen(Buffer),0);		if (retval == SOCKET_ERROR)		{			fprintf(stderr,"\nsend() failed: error %d",errno);			return -1;		}		printf("\nSuccessfull sent of data [%s],%d",Buffer,x);		//sleep(1);		sprintf(Buffer,"GREQ 1.00 RofinSinar***** VE    i_greq_mac 'SZVYMTYP00109' 1\r\n");		retval = send(conn_socket,Buffer,strlen(Buffer),0);		if (retval == SOCKET_ERROR)		{			fprintf(stderr,"\nsend() failed: error %d",errno);			return -1;		}		printf("\nSuccessfull sent of data [%s],%d",Buffer,x);		//sleep(1);		retval = recv(conn_socket,Buffer,sizeof (Buffer),0 );		if (retval == SOCKET_ERROR) 		{			fprintf(stderr,"\nrecv() failed: error %d",errno);			close(conn_socket);			return -1;		}		// 'connection' established. 		//		if (retval == 0) 		{			printf("\nServer closed connection\n");			close(conn_socket);			return -1;		}		Buffer[retval]=0x00;		printf("\nReceived %d bytes, data [%s] from server\n",retval,Buffer);	/*	if (!loopflag)		{			printf("\nTerminating connection");			break;		}		else 		{			if ( (loopcount >= maxloop) && (maxloop >0) )				break;		}*/	}	sleep(10);	free(server_name);	close(conn_socket);}

⌨️ 快捷键说明

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