网络编程代码
任务
- 单线程以及多线程C/S
- 使用select实现单线程以及多线程C/S
- 使用poll实现单线程以及多线程C/S
- 使用epoll实现单线程以及多线程C/S
单线程C/S
服务器端
1 |
|
#include<arpa/inet.h>
包含了一些字节序转换函数;#include<sys/socket.h>
包含了套接字通信函数;#include<unistd.h>
包含了read,write,close等函数;#include<string.h>
包含了memset等函数;- 文件描述符会按照从小到达的顺序创建,比如这个程序sockfd将为3,cfd将为4;
- 文件描述符0为stdin:标准输入;
- 文件描述符1为stdout:标准输出;
- 文件描述符2为stderr:标准错误输出;
- 函数具体参数没必要特意去记,熟练使用man文档查阅
客户端
1 |
|
- ip从主机字节序转换到网络字节序
1
2
3
4
5// way-1
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
// way-2
int ret = inet_pton(AF_INET, serverIP, &addr.sin_addr.s_addr);
多线程C/S
网络编程代码
http://example.com/2025/02/22/NetworkCommunications/code/