您的位置:首页 > 理论基础 > 计算机网络

Python3之socket网络编程

2017-08-21 15:33 417 查看

socket编程的两个循环:

链接循环

while 1:

conn, addr = phone.accept()
print(conn, addr)
while 1:
try:
data = conn.recv(1024)
if not data: break
print('客户端信息:', data)
conn.send(data.upper())
except Exception as e:
break
conn.close()


通信循环

while 1:
try:
data = conn.recv(1024)
if not data: break
print('客户端信息:', data)
conn.send(data.upper())
except Exception as e:
break


地址ip和端口port唯一标识一台上的一个软件,具体参考osi7层中的五层协议:

1. 应用层:自己定制的协议

2. 传输层:TCP/UDP协议,基于端口通信

3. 网络层:IP协议,基于IP地址通信

4. 数据链路层:以太网协议,基于mac地址通信

5. 物理层:发送电频信号,0101二进制数

异常处理的回顾:

对于不能被预知的异常才能被捕获,如果能被预知,且属于逻辑错误则可以用if判断处理,预防异常抛出

地址被占用问题:Address already in use

解决方案:

phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息