📄 tcp_send.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 + -