网络编程复习

网络编程:
互联网协议:七层 osi协议
五层:
应用层 python
传输层 tcp/udp
网络层 ip                            路由器
数据链路层 arp                   交换机
物理层 通过ip找mac地址    网卡、双绞线
ip协议:ip地址的格式

ip地址:一台机器在一个网络中唯一的标识
子网掩码:ip地址宇子网掩码做按位与运算,得到的结果是网段
网关IP:局域网内的机器访问公网IP,就是通过网关访问
tcp协议:面向流的,可靠,全双工,三次握手,四次挥手——粘包
udp协议:面向数据包,不可靠

send和sendall

send是如果一次发的数据很大,那么会拆包,分开发送,数据不会丢失;sendall如果数据很大,那么会造成数据的丢失;

但是在实际中,由于内存的限制,不能一次性发送所有的数据;所以在实际应用中推荐使用send.

setblocking

import socket
sk=socket.socket()
sk.setblocking(False)#如果这里为false,因为没有启动client,那么下面的sk.accept()会一直在等待,结果代码就会报错
sk.bind(('127.0.0.1',8080))
sk.listen()
sk.accept()#这里需要等待client端口连接

进阶

import socket
sk=socket.socket()
sk.setblocking(False)#如果这里为false,因为没有启动client,那么下面的sk.accept()会一直在等待,结果代码就会报错
sk.bind(('127.0.0.1',8080))
sk.listen()
try:
    sk.accept()#这里需要等待client端口连接
except:BlockingIOError
print('*****')

 在第34天的课程里面有ftp作业,涉及到包,随后再学习做。

posted @ 2019-04-02 20:38  舒畅123  阅读(73)  评论(0编辑  收藏  举报