创建于 2012-05-25
迁移自个人的百度空间
--------------------------------
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
char *inet_ntoa(struct in_addr in); //将一个IP网络字节序输入转换成一个互联网标准点分格式的字符串。
#include <sys/socket.h>
int getsockopt(int socket, int level, int option_name,
void *restrict option_value, socklen_t *restrict option_len); //获取一个套接口选项
int setsockopt(int socket, int level, int option_name,
const void *option_value, socklen_t option_len); //设置套接字的选项
sockfd:一个标识套接口的描述字。
level:选项定义的层次。支持的层次仅有SOL_SOCKET和IPPROTO_TCP。
optname:需获取的套接口选项。
optval:指针,指向存放所获得选项值的缓冲区。对于setsockopt来说,指向存放选项值的缓冲区
optlen:指针,指向optval缓冲区的长度值。
optname可以是下面选项之一
SO_SNDBUF
Reports send buffer size information. This option shall store an int value.
SO_RCVBUF
Reports receive buffer size information. This option shall store an int value.
....
其它选项详见POSIX Programmer's Manual(man 3 getsockopt)
选项名称 说明 数据类型
=====================================================================================
SOL_SOCKET
---------------------------------------------------------------------------------------------------------------------------------------------------------
SO_BROADCAST 允许发送广播数据 int
SO_DEBUG 允许调试 int
SO_DONTROUTE 不查找路由 int
SO_ERROR 获得套接字错误 int
SO_KEEPALIVE 保持连接 int
SO_LINGER 延迟关闭连接 struct linger
SO_OOBINLINE 带外数据放入正常数据流 int
SO_RCVBUF 接收缓冲区大小 int
SO_SNDBUF 发送缓冲区大小 int
SO_RCVLOWAT 接收缓冲区下限 int
SO_SNDLOWAT 发送缓冲区下限 int
SO_RCVTIMEO 接收超时 struct timeval
SO_SNDTIMEO 发送超时 struct timeval
SO_REUSERADDR 允许重用本地地址和端口 int
SO_TYPE 获得套接字类型 int
SO_BSDCOMPAT 与BSD系统兼容 int
======================================================================================
IPPROTO_IP
----------------------------------------------------------------------------------------------------------------------------------------------------------
IP_HDRINCL 在数据包中包含IP首部 int
IP_OPTINOS IP首部选项 int
IP_TOS 服务类型
IP_TTL 生存时间 int
======================================================================================
#include <sys/socket.h>
int shutdown(int socket, int how); //shut down socket send and receive operations
how Specifies the type of shutdown. The values are as follows:
SHUT_RD
Disables further receive operations.
SHUT_WR
Disables further send operations.
SHUT_RDWR
Disables further send and receive operations.
----------
#include <sys/socket.h>
ssize_t recv(int socket, void *buffer, size_t length, int flags);
ssize_t send(int socket, const void *buffer, size_t length, int flags);
这两个函数和标准的read和write函数很类似,只是多了一个附加的参数flags。
本文详细介绍了网络编程中的关键函数,包括IP地址转换、套接字选项的设置与获取、关闭套接字操作以及数据的发送与接收。通过这些函数,开发者能够更好地理解和控制网络通信过程。
2013

被折叠的 条评论
为什么被折叠?



