#include #include #include #include #include #include #include #include void error( const char *msg ) { perror( msg ); exit( 0 ); } int main( int argc, char *argv[] ) { int sockfd, portno; ssize_t n; struct sockaddr_in serv_addr; struct hostent *server; const size_t buffer_length = 256; char buffer[ buffer_length ]; if( argc < 3 ) { fprintf( stderr, "usage %s hostname port\n", argv[ 0 ] ); exit( 0 ); } portno = atoi( argv[ 2 ] ); sockfd = socket( AF_INET, SOCK_STREAM, 0 ); if( sockfd < 0 ) { error("ERROR opening socket"); } server = gethostbyname( argv[ 1 ] ); if( server == NULL ) { fprintf( stderr, "ERROR, no such host\n" ); exit( 0 ); } bzero( (char *)&serv_addr, sizeof( serv_addr ) ); serv_addr.sin_family = AF_INET; bcopy( (char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, (size_t)server->h_length ); serv_addr.sin_port = htons(portno); if( connect( sockfd, (struct sockaddr *)&serv_addr, sizeof( serv_addr ) ) < 0 ) { error("ERROR connecting"); } FILE *fp; while(1) { fp = fopen("file.txt" , "r"); if(fp == NULL) { perror("打开文件时发生错误"); return(-1); } bzero( buffer, buffer_length ); int i = 0; while (1) { if (fgets(buffer,buffer_length - 1, fp) == NULL) break; i++; char string[255]; sprintf(string , "%s\n", buffer); printf("%3d: %s\n", i, string); n = write( sockfd, buffer, strlen( buffer ) ); if( n < 0 ) { error("ERROR writing to socket"); } bzero( buffer, buffer_length ); n = read( sockfd, buffer, buffer_length - 1 ); if( n < 0 ) { error( "ERROR reading from socket" ); } sleep(1); } } close( sockfd ); return 0; }