acme_ltt 发表于 2013-1-26 12:32:25

C语言两个进程相互通信—socket

直接贴代码吧
client.c
 
#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <stdlib.h>int main(){int sockfd;int len;struct sockaddr_in address;int result;int i,byte;char char_recv,char_send;if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){perror("socket");exit(EXIT_FAILURE);}address.sin_family = AF_INET;address.sin_addr.s_addr = inet_addr("127.0.0.1");address.sin_port = 8080;len = sizeof(address);if((result = connect(sockfd,(struct sockaddr *)&address,len)) == -1){perror("connect");exit(EXIT_FAILURE);}printf("please enter the context you want to send to server :");scanf("%c",&char_send);if(byte = send(sockfd,&char_send,1,0) == -1){perror("send");exit(EXIT_FAILURE);}if(byte = recv(sockfd,&char_recv,1,0) == -1){perror("recv");exit(EXIT_FAILURE);}printf("receive from server %c\n",char_recv);close(sockfd);exit(0);} server.c
 
#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <stdlib.h>char dict(char temp){if(temp == 'Z'){return 'A';}return temp+1;}int main(){int server_sockfd,client_sockfd;int server_len,client_len;struct sockaddr_in server_address;struct sockaddr_in client_address;int i,btye;char char_recv,char_send;server_address.sin_family = AF_INET;server_address.sin_addr.s_addr = inet_addr("127.0.0.1");server_address.sin_port = 8080;server_len = sizeof(server_address);server_sockfd = socket(AF_INET,SOCK_STREAM,0);bind(server_sockfd,(struct sockaddr *)&server_address,server_len);listen(server_sockfd,5);printf("server waiting for connect\n");client_len = sizeof(client_address);client_sockfd = accept(server_sockfd,(struct sockaddr *)&client_address,(socklen_t *)&client_len);if(btye = recv(client_sockfd,&char_recv,1,0) == -1){perror("recv");exit(EXIT_FAILURE);}printf("receive from client is %c\n",char_recv);char_send = dict(char_recv);if(btye = send(client_sockfd,&char_send,1,0) == -1){perror("send");exit(EXIT_FAILURE);}shutdown(client_sockfd,2);shutdown(server_sockfd,2); return 0;}
页: [1]
查看完整版本: C语言两个进程相互通信—socket