利用socked实现两个进程间的通信

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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}

相关文档
最新文档