服务器与客户端的实例整理
来源:互联网 发布:apache编译安装参数 编辑:程序博客网 时间:2024/06/05 05:39
1. /*******************
2. 服务器
3. *******************/
4.
5. #include <stdio.h>
6. #include <stdlib.h>
7. #include <string.h>
8. #include <strings.h>
9.
10. #include <sys/types.h>
11. #include <sys/socket.h>
12. #include <netinet/in.h>
13.
14. #define SERV_PORT 8000
15.
16. int main(int argc, char *argv[])
17. {
18. if(argc != 2)
19. {
20. printf("Please input one IP!!\n");
21. exit(-1);
22. }
23. int n_read;
24. char buffer[1024]; //缓冲
25. struct sockaddr_in client; //存放客户端信息
26. int len = sizeof(client); //存放客户端的类型长度
27. struct sockaddr_in servaddr; //服务器端
28. bzero(&servaddr,sizeof(servaddr)); //清零
29. servaddr.sin_family = AF_INET; //服务器端遵循IPV4
30. servaddr.sin_addr.s_addr = inet_addr(argv[1]); //传入服务器端地址,inet_addr,将字符串转换成地址
31. servaddr.sin_port = htons(SERV_PORT); //端口号,宏定义为8000
32.
33. int sock = socket(AF_INET,SOCK_STREAM,0); //服务器的套接字
34. if(sock == -1)
35. {
36. perror("sock ");
37. exit(-1);
38. }
39.
40. if((bind(sock,(struct sockaddr *)&servaddr,sizeof(servaddr))) == -1) //将套接字与服务器信息绑在一起
41. {
42. perror("bind ");
43. exit(-1);
44. }
45.
46. if((listen(sock,5)) == -1) //设置监听器
47. {
48. perror("listen ");
49. exit(-1);
50. }
51.
52.
53. int fd = accept(sock,(struct sockaddr *)&client,&len); //打开接收端,将客户端信息传入client中,len会得到客户端地址长度
54. if(fd == -1)
55. {
56. perror("accept ");
57. exit(-1);
58. }
59. printf("client address:%s\n",inet_ntoa(client.sin_addr.s_addr)); //打印客户端地址
60. printf("client port:%d\n",len); //打印客户端地址长度
61. while(1)
62. {
63. memset(buffer,0,sizeof(buffer));
64. n_read = read(fd,buffer,sizeof(buffer)); //读取客户端发送的信息
65. if(n_read == -1)
66. {
67. perror("read ");
68. exit(-1);
69. }
70. printf("information : %s\n",buffer); //打印信息
71. }
72.
73. return 0;
74. }
[cpp] view plain copy
1. /*******************
2. 客户端
3. *******************/
4.
5. #include <stdio.h>
6. #include <stdlib.h>
7. #include <string.h>
8. #include <strings.h>
9.
10. #include <sys/types.h>
11. #include <sys/socket.h>
12. #include <netinet/in.h>
13.
14. #define SERV_PORT 8000
15.
16. int main(int argc, char *argv[])
17. {
18. if(argc != 2)
19. {
20. printf("Please input server IP!\n");
21. exit(-1);
22. }
23.
24. int con;
25. char buffer[1024];
26.
27. int sock = socket(AF_INET,SOCK_STREAM,0); //定义客户端的套接字
28.
29. struct sockaddr_in server;
30. bzero(&server,sizeof(server));
31. server.sin_family = AF_INET; //链接服务器遵循IPV4
32. server.sin_addr.s_addr = inet_addr(argv[1]); //需要链接的服务器地址
33. server.sin_port = htons(SERV_PORT);
34.
35. if(connect(sock,(struct sockaddr *)&server,sizeof(server)) == -1) //将客户端与服务器链接链接
36. {
37. perror("connect ");
38. exit(-1);
39. }
40.
41. while(1)
42. {
43. memset(buffer,0,sizeof(buffer));
44. printf("Please input infornamtion:\n");
45. scanf("%s",buffer);
46. write(sock,buffer,sizeof(buffer)); //向服务器发送数据
47. }
48. return 0;
49. }
- 服务器与客户端的实例整理
- Lua 服务器与客户端实例
- 客户端如何获取服务器控件的值(原理与实例)
- Socket服务器与客户端双向通信实例
- Java Socket服务器与客户端实例
- windows socket 服务器与客户端开发实例
- android客户端与服务器socket通信实例
- .Net下客户端与远端服务器网络通信与文件传送的实例
- 简单的服务器和客户端程序代码实例
- 客户端与服务器的交互
- 客户端与服务器的连接
- 客户端/服务器代码实例
- 基于无连接(UDP协议)的服务器与客户端编程实例
- Android客户端与PC服务器通过socket进行交互实例
- java客户端与服务器交互实例-猜数字小游戏
- java客户端与服务器交互-质数判别实例
- linux tcp多线程服务器与客户端编程实例
- Android客户端与PC服务器通过socket进行交互实例
- VS2013配置OpenGL4.3及以上编程环境
- Codeforces Round #402 (Div. 2) D. String Game
- JAVA输入与输出
- Vue.js资料
- Play框架实现ajax异步提交问卷调查
- 服务器与客户端的实例整理
- 带表头结点的单向链表
- 设计模式之单例模式
- node.js socket.broadcast发不去的一个原因
- 【问题解决】XMLHttpRequest cannot load http://xxx.xxx No 'Access-Control-Allow-Origin'
- eclipse中 svn 安装与管理
- 130. Surrounded Regions\73. Set Matrix Zeroes
- 什么样的离开会让老板念念不忘
- 表现与数据分离