-
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直连