1.UDP通讯协议 UDP的使用 UDP在使用时需要修改socket的参数 第一个仍是 AF_INET 第二个 SOCK_DGGRAM 不需要建立连接 所以没有三次握手 四次挥手 1.修改sock的参数/2.不需要监听和接收请求 相同点: 服务器:都需要绑定 端口和ip recv与recvfrom都 ...
分类:
其他好文 时间:
2019-03-04 21:11:08
阅读次数:
226
有时候,写UDP socket程序的时候,在调用sendto或者recvfrom的时候,会发现有Connection refused错误返回,错误码是ECONNREFUSED。对于懂得socket接口但是不很很懂网络的人,可能这根本就不是个问题,他会根据错误码知道远端没有这个服务端口,正如socke ...
分类:
其他好文 时间:
2019-02-16 19:26:51
阅读次数:
241
udp: 1.创建套接字 socket 2.绑定本地ip/port bind 3.收发数据 sendto/recvfrom 4.关闭套接字 close tcp客户端: 1.创建套接字 socket 2.连接服务端 connect 3.收发数据 send/recv 4.关闭套接字 close tcp服 ...
分类:
其他好文 时间:
2019-02-13 00:35:25
阅读次数:
193
参考文章地址:http://www.cnblogs.com/yuanchenqi/articles/5722574.html 两个步骤: recvfrom 系统调用 ; 拷贝数据 从kernel到数据 又叫 ‘事件驱动IO’ select、epoll 的好处是单个 process 可以同时处理多个网 ...
分类:
编程语言 时间:
2019-02-02 18:51:53
阅读次数:
250
一个生产环境,nginx占用cpu很高。 top跟进去单个线程,发现是主线程很高: gdb跟踪一下,发现大量的epoll_wait返回,中间没有任何系统调用: 查看堆栈, epoll_wait在返回有active的fd的时候,我们并没有去调用recv或者recvfrom,走查代码: 发现 wev-> ...
分类:
其他好文 时间:
2019-01-14 10:53:24
阅读次数:
340
select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet()、accept()、recv()或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执 ...
分类:
其他好文 时间:
2019-01-12 15:19:46
阅读次数:
210
服务端:HOST=‘localhost‘PORT=1200BUFSIZ=128ADDR=(HOST,PORT)#创建一个服务器端UDP套接字udpServer=socket(AF_INET,SOCK_DGRAM)#绑定服务器套接字udpServer.bind(ADDR)print(‘已经进入监听状态...‘)#接收来自客户端的数据data,addr=udpServer.recvfrom(BUFSI
分类:
其他好文 时间:
2019-01-01 11:42:06
阅读次数:
178
ip地址 A类:网络号7位 主机号21位 B类:网络号14位 主机号:14位 c类:网络号21位 主机号7位 D类地址是用来多播的 E类是用来保留的 192.168.1.1~255 常见的c类 一共有4组数,前面的标记是否为同一个局域网 端口号 它就是一串数字 ip地址是用来区分哪台电脑的 端口号是 ...
分类:
其他好文 时间:
2018-11-24 22:27:00
阅读次数:
295
import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.bind(('127.0.0.1',8888)) while True: data,addr=s.recvfrom(9999) print(data) s.send... ...
分类:
编程语言 时间:
2018-11-15 01:36:54
阅读次数:
149
1.TCP半连接池原理 什么情况下会进入半连接池 来不及处理accept 或者客户端单方面终止连接 2.UDP 通讯 写代码的区别 对比TCP 没有listen 没有accept 发送使用sendto 需要指定接收方的地址 recvfrom 缓冲区大小最大建议512 需要和发送方一样大 3.UDP聊 ...
分类:
其他好文 时间:
2018-11-07 21:36:34
阅读次数:
164