这是学习Linux网络编程的一个小实验项目
-
客户端从hostname到ip:
gethostbyname不是线程安全的,因为它使用静态数据存储结果。在多线程环境中,建议使用getaddrinfo替代。getaddrinfo 的主要作用是将主机名和服务名解析为地址信息,返回一个 struct addrinfo 链表。每个节点包含一个地址信息 -
getaddrinfo报错配合gai_str_error使用
一个对象对应一个连接
-
连接(提供服务端的主机名(此时默认使用http服务,连接对方的80端口),或者提供服务端的IP的端口),连接操作就是获得一个文件描述符,当向文件中写数据时就会发送出去
-
send,调用系统的send函数,实际上是写文件
-
recv,实际上就是读文件
-
close,关闭文件描述符
需要注意的是各种结构体的构成,以及从结构体中获取对方地址相关的信息
要解决的问题
- 能感知到用户的连接