-
platform_net_socket.c
-
platform_net_socket.h
各个平台层的socket api接口,因为某些平台的socket
并非标准的,因此在此对他们进行了封装,统一了网络的socket
接口,但其内部的操作基本不会相差太大,主要是满足socket
的socket、connect、read/recv、write、setsockopt、clos
等操作。
- 根据指定的服务器地址
host
、端口号port
与协议类型proto
连接服务器,期间会创建socket描述符
,如果host
是域名将进行域名解析操作,然后connect
服务器,在连接失败的时候close
掉socket描述符。
int platform_net_socket_connect(const char *host, const char *port, int proto)
- 读取指定长度
len
的数据,默认socket
描述符是阻塞io
,当没有数据可读时将持续阻塞,读取到的数据存放到指定的buf
区域,flags一般为0。
int platform_net_socket_recv(int fd, void *buf, size_t len, int flags)
- 读取指定长度
len
的数据,指定阻塞的超时时间timeout
,在超时时间到达后,将不再阻塞。
int platform_net_socket_recv_timeout(int fd, unsigned char *buf, int len, int timeout)
- 向
socket
描述符写入指定长度len
的buf
区域的数据,然后发送出去,当不可写的时候会阻塞。
int platform_net_socket_write(int fd, void *buf, size_t len)
- 向
socket
描述符写入指定长度len
的buf
区域的数据,当不可写的时候会阻塞,但在超时时间到达后,将不再阻塞。
int platform_net_socket_write_timeout(int fd, unsigned char *buf, int len, int timeout)
- 关闭
socket
描述符。
int platform_net_socket_close(int fd)
- 设置
socket
描述符为阻塞模式。
int platform_net_socket_set_block(int fd)
- 设置
socket
描述符为非阻塞模式。
int platform_net_socket_set_nonblock(int fd)
- 设置
socket
描述符的其他操作,与setsockopt()
函数的处理是一样的。
int platform_net_socket_setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen)
上一篇:平台抽象层—互斥锁
下一篇: 平台抽象层—tcp直连