1.描述符表与socket 每个socket都有一个描述符,指向对应socket的结构,但是对这个sockfd的读写是怎么和缓冲区以及文件连接起来的呢? 数据结构: https://www.kernel.org/doc/htmldocs/networking/API-struct-socket.ht ...
分类:
其他好文 时间:
2021-05-25 18:31:55
阅读次数:
0
端口复用 端口复用最常用的用途是: 防止服务器重启时之前绑定的端口还未释放 程序突然退出而系统没有释放端口 设置方法 int opt=1; setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(const void*)&opt,sizeof(opt)); 注意事项 绑 ...
分类:
编程语言 时间:
2021-05-24 02:37:50
阅读次数:
0
当终止服务器运行后,再次进行调试时,出现bind error: Address Already in use 在bind函数调用前添加,即可免去Linux下的TIME_WAIT的将近两分钟的等待时间 int on=1; setsockopt(sockfd,SOL_SOCKET,SO_REUSEADD ...
分类:
Web程序 时间:
2020-06-29 13:13:21
阅读次数:
108
一、相关函数 函数描述 int socket(int family, int type, int protocol); 位于:<sys/socket.h>;功能:创建一个网络套接字 ;返回:成功返回一个非负数的描述符,出错返回-1。 int bind(int sockfd, const struct ...
分类:
编程语言 时间:
2020-05-09 18:43:48
阅读次数:
161
聊聊select, poll 和 epoll 假设项目上需要实现一个TCP的客户端和服务器从而进行跨机器的数据收发,我们很可能翻阅一些资料,然后写出如下的代码。 服务端 void func(int sockfd) { char buff[MAX]; int n; // infinite loop f ...
分类:
其他好文 时间:
2020-05-03 20:08:14
阅读次数:
52
转自:http://www.cnblogs.com/blankqdb/archive/2012/08/30/2663859.html linux send与recv函数详解 1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff ...
分类:
系统相关 时间:
2020-04-21 18:03:12
阅读次数:
64
test 1.原始套接字(raw socket) 1.1 原始套接字工作原理与规则 原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样,例如,通过 int sockfd; sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICM ...
分类:
其他好文 时间:
2020-03-14 23:51:19
阅读次数:
74
{ //https://www.cnblogs.com/blankqdb/archive/2012/08/30/2663859.html 1. send解析 sockfd:指定发送端套接字描述符。 buff: 存放要发送数据的缓冲区 nbytes: 实际要改善的数据的字节数 flags: 一般设置为 ...
分类:
系统相关 时间:
2020-02-17 01:06:54
阅读次数:
73
send和recv背后数据的收发过程 send和recv是TCP常用的发送数据和接受数据函数,这两个函数具体在linux内核的代码实现上是如何实现的呢? ssize_t recv(int sockfd, void buf, size_t len, int flags) ssize_t send(in ...
分类:
其他好文 时间:
2019-12-26 19:34:06
阅读次数:
75
一边接收函数返回一边判断返回值时一定要把接收的优先级加()提高再去判断 例 if((sockfd = socket()) < 0) 问题: 如何实现SYN扫描器扫描端口 , 比如AB两个设备要进行连接 , A通过端口发一个SYN包给B,B在收到后返回一个ACK包确认连接 , 但是在不确定B端口号时 ...
分类:
系统相关 时间:
2019-12-12 23:42:48
阅读次数:
134