keyboard-hook/test/C/client-test.c

88 lines
2.2 KiB
C
Raw Normal View History

2024-04-11 14:09:31 +00:00
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
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;
}