利用socked实现两个进程间的通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1#include
2#include
3#include
4#include
5#include
6#include
7#include
8int main()
9{
10int sockfd;
11int len;
12struct sockaddr_in address;
13int result;
14int i,byte;
15char char_recv,char_send;
16if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) 17{
18perror("socket");
19exit(EXIT_FAILURE);
20}
21address.sin_family = AF_INET;
22address.sin_addr.s_addr = inet_addr("127.0.0.1");
23address.sin_port = 8080;
24len = sizeof(address);
25if((result = connect(sockfd,(struct sockaddr *)&address,len)) == -1) 26{
27perror("connect");
28exit(EXIT_FAILURE);
29}
30
31printf("please enter the context you want to send to server :");
32scanf("%c",&char_send);
33
34if(byte = send(sockfd,&char_send,1,0) == -1)
35{
36perror("send");
37exit(EXIT_FAILURE);
38}
39if(byte = recv(sockfd,&char_recv,1,0) == -1)
40{
41perror("recv");
42exit(EXIT_FAILURE);
43}
44printf("receive from server %c\n",char_recv);
45
46close(sockfd);
47exit(0);
48}
server.c
C代码
49#include
50#include
51#include
52#include
53#include
54#include
55#include
56char dict(char temp)
57{
58if(temp == 'Z')
59{
60return 'A';
61}
62return temp+1;
63}
64int main()
65{
66int server_sockfd,client_sockfd;
67int server_len,client_len;
68struct sockaddr_in server_address;
69struct sockaddr_in client_address;
70int i,btye;
71char char_recv,char_send;
72
73server_address.sin_family = AF_INET;
74server_address.sin_addr.s_addr = inet_addr("127.0.0.1");
75server_address.sin_port = 8080;
76server_len = sizeof(server_address);
77
78server_sockfd = socket(AF_INET,SOCK_STREAM,0);
79
80bind(server_sockfd,(struct sockaddr *)&server_address,server_len);
81
82listen(server_sockfd,5);
83printf("server waiting for connect\n");
84
85client_len = sizeof(client_address);
86client_sockfd = accept(server_sockfd,(struct sockaddr
*)&client_address,(socklen_t *)&client_len);
87
88if(btye = recv(client_sockfd,&char_recv,1,0) == -1) 89{
90perror("recv");
91exit(EXIT_FAILURE);
92}
93printf("receive from client is %c\n",char_recv);
94char_send = dict(char_recv);
95if(btye = send(client_sockfd,&char_send,1,0) == -1) 96{
97perror("send");
98exit(EXIT_FAILURE);
99}
100
101shutdown(client_sockfd,2);
102shutdown(server_sockfd,2);
103return 0;
104}