recvfrom系统调用通过用户传入的接收空间构造msghdr,并且调用sock_recvmsg,该函数调用socket操作的recvmsg函数sock->ops->recvmsg,ipv4对应的是inet_recvmsg,该函数调用传输层的sk->sk_prot->recvmsg来接收数据,如tc ...
分类:
其他好文 时间:
2019-10-27 22:55:08
阅读次数:
98
recv系统调用对sys_recvfrom进行了简单的封装,只是其中不包含地址信息,其只需要从建立连接的另一端接收信息; 1 /* 2 * Receive a datagram from a socket. 3 */ 4 5 SYSCALL_DEFINE4(recv, int, fd, void _ ...
分类:
其他好文 时间:
2019-10-27 22:48:56
阅读次数:
107
write用于向任意文件描述符中写入(读取)数据,用作socket发送数据时,只能向已经建立连接的文件描述符中写入(读取)数据;参数以及返回值如下: writev向任意文件描述符中写入多个缓冲区的数据,readv用于从任意描述符中向多个缓冲区读取数据,用作socket发送数据时,只能向已经建立连接的 ...
分类:
其他好文 时间:
2019-10-27 22:28:45
阅读次数:
101
基础 操作系统 I/O 模型 阻塞式 I/O 模型(blocking I/O) 描述:在阻塞式 I/O 模型中,应用程序在从调用 recvfrom 开始到它返回有数据报准备好这段时间是阻塞的,recvfrom 返回成功后,应用进程开始处理数据报 优点:程序简单,在阻塞等待数据期间进程/线程挂起,基本 ...
分类:
其他好文 时间:
2019-10-25 21:51:26
阅读次数:
106
阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还 ...
分类:
其他好文 时间:
2019-10-13 11:28:45
阅读次数:
78
一、IO模型介绍 回顾:同步、异步、阻塞、非阻塞 同步 : 指的是协同步调。既然叫协同,所以至少要有2个以上的事物存在。协同的结果就是:多个事物不能同时进行,必须一个一个的来,上一个事物结束后,下一个事物才开始。 异步 :就是步调各异,就是多个事物,你进行你的,我进行我的,谁都不用管谁,所有的事物都 ...
分类:
其他好文 时间:
2019-09-22 21:59:49
阅读次数:
87
一、socket的基本概念 1.1socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符 ...
分类:
其他好文 时间:
2019-09-11 15:37:21
阅读次数:
92
# pcjimport socketimport threading# def recv_msg(udp_socket):# while True:# recv_date = udp_socket.recvfrom(1024)# print(recv_date[0].decode("gbk"),re ...
分类:
编程语言 时间:
2019-09-01 13:01:27
阅读次数:
100
并发概念 I/O操作 I/O操作 相对内存来说 输入Input输出Output 输入是怎么输入 :键盘\input\read\recv 输出是怎么输出 :显示器 打印机 播放音乐\print\write\send 文件操作 :read write 网络操作 :send recv recvfrom 函 ...
分类:
编程语言 时间:
2019-08-13 22:58:17
阅读次数:
233
服务端 import socket server = socket.socket(type=socket.SOCK_DGRAM) server.bind(('127.0.0.1',8080)) while True: data, addr = server.recvfrom(1024) print(... ...
分类:
其他好文 时间:
2019-08-08 21:32:23
阅读次数:
144