代码如下
服务器:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netiet/in.h>
#define Port_num 9999 //端口号
int main(int argc,char *argv[])
{
if(argc != 2)
{
printf("please input a Ip\n");
exit(1);
}
int ser_fd;
int clien_fd;
char buffer[1024];
struct sockaddr_in ser_addr;
bzero(&ser_addr,sizeof(ser_addr));
ser_addr.sin_family = AF_INET;
ser_addr.sin_addr.s_addr = inet_addr(argv[1]);
ser_addr.sin_port = htons(Port_number);
if((ser_fd = socket(AF_INET,SOCK_STREAM,0) == -1)
{
perror("socket create error");
exit(1);
}
if(bind(ser_fd,(struct sockeraddr *)&ser_addr,sizeof(ser_addr) == -1)
{
perror("bind error");
exit(1);
}
if(listen(ser_fd,5) == -1)
{
perror("listem errror");
exit(1);
}
int len = sizeof(client_addr);
if(client_fd == -1)
{
perror("accept error");
exit(1);
}
printf("client address = %s \n",inet_ntoa(client_addr.sin_addr.s_addr);
int n_read = read(client_fd,buffer,sizeof(buffer));
if(n_read == -1)
{
perror("read error");
exit(1);
}
printf("informatiom = %s\n",buffer);
return 0;
}
//客户端
int main(int argc,char *argv[])
{
if(atgc != 2)
{
printf("please input a IP\n");
exit(1)
}
int client_fd;
char buffer[1024];
client_fd = socket(AF_INET,SOCK_STREAM,0);
if(client == -1)
{
perror("socket error");
exit(1);
}
struct socketaddr_in client_addr;
bzero(&client,sizeof(client_addr);
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = inet_addr(argv[1]);
client_addr.sin_port = htons(Port_number);
if(connect(client_fd,(struct sockaddr*)&client_addr,sizeof(client_addr)
{
perror("connect error");
exit(1);
}
printf("please input a string\n");
scanf("%s",buffer);
write(client_fd,buffet,sizeof(buffer));
}