服务器:
1 #include<sys/socket.h>
2 #include<stdio.h>
3 #include<arpa/inet.h>
4 #include<unistd.h>
5 #include<ctype.h>
6 #include<strings.h>//bzero
7
8 #define server_addr "127.0.0.1"
9 #define server_port 8888
10 void main(void)
11 {
12 //定义socket文件描述符
13 int server_sock,clien_sock;
14 //建立服务器套接字
15 server_sock=socket(AF_INET,SOCK_STREAM,0);
16 //建立sockaddr_in 结构体
17 //设置定义接收的客户端结构体 //定义接收clie_so结构体长度的变量
18 struct sockaddr_in clien_sockaddr;
19 struct sockaddr_in server_sockaddr;
20 socklen_t clien_sock_len=sizeof(clien_sockaddr);
21 //将addr结构体内的数据清理
22 bzero(&server_sockaddr,sizeof(server_sockaddr));
23
24 //建立IP协议,IP号,端口号
25 server_sockaddr.sin_family=AF_INET;
26 server_sockaddr.sin_port=htons(server_port);
27 // server_sockaddr.sin_addr.s_addr=inet_addr(server_addr);
28 inet_pton(AF_INET,server_addr,&server_sockaddr.sin_addr.s_addr);
29 //绑定套接字与(IP,端口号),##注意结构体的转换
30 bind(server_sock,(struct sockaddr *)&server_sockaddr,sizeof(server_sockaddr));
31 //设置服务器同一时刻接收连接的最大量
32 listen(server_sock,128);
33
34
35 //等待阻塞客户端的请求连接
36 clien_sock=accept(server_sock,(struct sockaddr *)&clien_sockaddr,&clien_sock_len);
37 //与连接的客户端交互
38 char buf[1024];
39 read(clien_sock,buf,sizeof(buf));
40 printf("%s",buf);
41 }
客户端:
1 #include<stdio.h>
2 #include<unistd.h>
3 #include<arpa/inet.h>
4 #include<sys/socket.h>
5 #include<strings.h>
6 #include<string.h>
7
8 #define clien_addr "127.0.0.1"
9 #define clien_port 8888
10 void main(void)
11 {
12 //建立套接字
13 int clien_sock;
14 clien_sock=socket(AF_INET,SOCK_STREAM,0);
15 //设置sockaddr_in结构体
16
17 struct sockaddr_in clien_sockaddr;
18 bzero(&clien_sockaddr,sizeof(clien_sockaddr));
19 clien_sockaddr.sin_family=AF_INET;
20 clien_sockaddr.sin_port=htons(clien_port);
21 // clien_sockaddr.sin_addr.s_addr=inet_addr(clien_addr);
22 inet_pton(AF_INET,clien_addr,&clien_sockaddr.sin_addr.s_addr);
23 //绑定套接字与网络ip,端口号
24 bind(clien_sock,(struct sockaddr *)&clien_sockaddr,sizeof(clien_sockaddr));
25 //发送连接请求
26 connect(clien_sock,(struct sockaddr *)&clien_sockaddr,sizeof(clien_sockaddr));
27
28 //向服务器输入数据
29 char buf[1024];
30 fgets(buf,sizeof(buf),stdin);
31 write(clien_sock,buf,strlen(buf));
32 }