day05
本章目标
read
、write
与recv
、send
readline
实现- 用
readline
实现回射客户端/服务器 getsockname
、getpeername
gethostname
、gethostbyname
、gethostbyadr
read、write与recv、send函数
man recv
recv
函数只能用于套接口的I/O·
,read
函数可以用于任何的I/O
recv
函数增加了可选参数flgs
,flags取值为MSG_OOB
:接收紧急指针数据。MSG_PEEK
:接收数据但是不把缓冲区的数据清除。
1 | #include <sys/types.h> |
##flags标志:
1 | MSG_OOB |
readline实现
readline
:是为了解决粘包问题。
getsockname、getpeername
getsockname
:获取套接口本地的地址
getpeername
:获取远程套接口的地址
1 | #include <sys/socket.h> |
1 | #include <sys/socket.h> |
gethostname、gethostbyname和gethostbyaddr
gethostname
:获取主机名字
gethostbyname
:通过主机名获取所有的IP地址
1 | #include <unistd.h> |
1 | #include <netdb.h> |
注:
struct hostent
的成员h_addr_list
虽然是char **
但是是需要用inet_ntoa
转化一下才能输出IP地址。