进程间通信--TCP

来源:互联网 发布:yum安装文件在哪 编辑:程序博客网 时间:2024/05/23 13:08

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;  }  


原创粉丝点击