setsockopt(),该函数的一个用法。

lieye_leaves 2012-10-26 12:34:38
int on = 1;
if (setsockopt(sd, SOL_SOCKET, SO_NONBLOCK, &on, sizeof(int)) < 0)
{
return errno;
}

setsockopt()中的参数,SO_NONBLOCK 无法找到,是否没有这个用法了?请教。
...全文
237 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongjiawei316 2012-10-26
  • 打赏
  • 举报
回复
flags 用 O_NONBLOCK
dongjiawei316 2012-10-26
  • 打赏
  • 举报
回复
int set_fl(int fd, int flags)    /* flags are file status flags to turn on */
{
int val;

if((val = fcntl(fd, F_GETFL, 0)) < 0) {
RPT(RPT_ERR,"[tskIpRev] : fcntl F_GETFL error");
return -1;
}
val |= flags; /* turn on flags */

if(fcntl(fd, F_SETFL, val) < 0) {
RPT(RPT_ERR,"[tskIpRev] : fcntl F_SETFL error");
return -1;
}
return 0;
}
qq120848369 2012-10-26
  • 打赏
  • 举报
回复
fcntl设置非阻塞。
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 setsockopt 是计算机网络编程中用于设置套接字选项的关键函数,它允许开发者在套接字层配置各种参数,从而控制网络通信的行为。该函数在多种操作系统的跨平台 Socket API 中被广泛使用,例如 Linux 和 Windows。 setsockopt 的基本语法如下: 参数说明如下: socket_fd:这是通过 socket() 函数创建的已打开的套接字文件描述符。 level:表示选项所在的协议层次。通常设置为 SOL_SOCKET(套接字级别),也可以是特定协议级别,如 IPPROTO_TCP(TCP 协议)或 IPPROTO_IP(IP 协议)。 optname:是一个枚举值,用于指定要设置的具体选项。例如,SO_REUSEADDR 允许立即重用套接字地址,SO_LINGER 控制关闭套接字时的行为,TCP_NODELAY 用于禁用 Nagle 算法等。 optval:是指向选项值的指针,其类型根据 optname 不同,可能是整数、结构体或其他数据类型。 optlen:是 optval 指向的数据长度,单位为字节。 以下是一些常见的 setsockopt 选项及其用途: SO_REUSEADDR:允许在套接字关闭后立即重新绑定到相同地址,适用于多线程或多进程服务器。 SO_LINGER:控制关闭套接字时是否等待未发送的数据。若设置为非零值且 linger.l_onoff 为非零,则套接字会在指定时间内尝试发送所有数据,即使已调用 close()。 TCP_NODELAY:禁用 Nagle 算法,该算法会将小数据段合并成更大的数据包以减少网络传输。禁用后可能会加快交互速度,但可能降低网络效率。 TCP_QUICKACK:控制 TCP 快速确认,使接收方尽快发送 ACK,从

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧