Linux网络编程之阻塞与非阻塞

简介: Linux网络编程之阻塞与非阻塞

第1关:阻塞

#include <sys/socket.h> // 包含套接字函数库
#include <fcntl.h>
void setsocketblock(int socketID)
{
/*******Begin*********/
    int flags = fcntl (socketID, F_GETFL, 0);
    //检查当前属性是否为BLOCK,否则将其设置为BLOCK
    if (flags & O_NONBLOCK)
    {
        fcntl (socketID, F_SETFL, flags&~O_NONBLOCK);
        int recvTimeout = 5 * 1000;
        setsockopt(socketID,SOL_SOCKET,SO_RCVTIMEO,(char *)&recvTimeout,sizeof(int));
    }
/********End*********/
}


第2关:非阻塞

#include <sys/socket.h> // 包含套接字函数库
#include <fcntl.h>
void setsocketunblock(int socketID)
{
/*******Begin*********/
    int flags = fcntl (socketID, F_GETFL, 0);
    //检查当前属性是否为NON_BLOCK,否则将其设置为NON_BLOCK
    if (0 == (flags & O_NONBLOCK))
    {
        fcntl (socketID, F_SETFL, flags|O_NONBLOCK);
    }
/********End*********/
}


第3关:阻塞与非阻塞切换

#include <sys/socket.h> // 包含套接字函数库
#include <fcntl.h>
void setsocketunblock(int socketID)
{
/*******Begin*********/
    int flags = fcntl (socketID, F_GETFL, 0);
    //检查当前属性是否为NON_BLOCK,否则将其设置为NON_BLOCK
    if (0 == (flags & O_NONBLOCK))
    {
        fcntl (socketID, F_SETFL, flags|O_NONBLOCK);
    }
/********End*********/
}
void setsocketblock(int socketID)
{
/*******Begin*********/
    int flags = fcntl (socketID, F_GETFL, 0);
    //检查当前属性是否为BLOCK,否则将其设置为BLOCK
    if (flags & O_NONBLOCK)
    {
        fcntl (socketID, F_SETFL, flags&~O_NONBLOCK);
        int recvTimeout = 5 * 1000;
        setsockopt(socketID,SOL_SOCKET,SO_RCVTIMEO,(char *)&recvTimeout,sizeof(int));
    }
/********End*********/
}
目录
相关文章
|
2月前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
70 4
|
8天前
|
域名解析 网络协议 安全
|
14天前
|
运维 监控 网络协议
|
9天前
|
存储 Ubuntu Linux
2024全网最全面及最新且最为详细的网络安全技巧 (三) 之 linux提权各类技巧 上集
在本节实验中,我们学习了 Linux 系统登录认证的过程,文件的意义,并通过做实验的方式对 Linux 系统 passwd 文件提权方法有了深入的理解。祝你在接下来的技巧课程中学习愉快,学有所获~和文件是 Linux 系统登录认证的关键文件,如果系统运维人员对shadow或shadow文件的内容或权限配置有误,则可以被利用来进行系统提权。上一章中,我们已经学习了文件的提权方法, 在本章节中,我们将学习如何利用来完成系统提权。在本节实验中,我们学习了。
|
17天前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
|
30天前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
28 1
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
52 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
37 0
|
2月前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
30 1
|
2月前
|
网络协议 Linux
Linux 网络配置
了解基本命令与权限后,如何让Linux系统联网?可通过编辑`/etc/sysconfig/network-scripts/`下的`ifcfg-ethX`文件配置网卡,其中`ethX`代表第X块网卡。对于DHCP自动获取或静态IP,需设置`BOOTPROTO`参数,并指定IP、子网掩码和网关等。配置完成后,运行`/etc/init.d/network restart`重启网络。DNS可在`/etc/resolv.conf`中设置,添加`nameserver`行即可,无需重启网卡。配置好后,可用`ifconfig`查看IP信息,并通过远程工具如SecureCRT连接服务器。
71 0

热门文章

最新文章