基于TCP协议之socket编程

#服务端
#导入一个socket模块
import socket

#想象成买手机打电话:socket.SOCK_STREAM 表示创建tcp链接 ,udp链接socket.SOCK_DGRAM
#买了个手机
# 获取tcp/ip套接字
soc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#插电话卡:绑定ip地址  传元组:(ip,端口号)
soc.bind(('192.168.11.254',8080))  #若是写本机ip,局域网外部能够访问
# 监听对方打电话
soc.listen(5)
#等待别人给我打电话
conn,addr=soc.accept()
# conn 就是通路
#接收1024个字节
data=conn.recv(1024)
print('我收到用户端发的',data.upper())      #转换为大写
#conn.send  发送数据,数据必须是bytes格式
conn.send(bytes(data.upper()))

#挂断电话
conn.close()
#销毁手机
soc.close()



#用户端
import socket
#建立一个socket对象
soc=socket.socket()
#链接服务端
soc.connect(('192.168.11.254',8080))
#发送消息
soc.send(b'Zhaoliang_DA_Sao_B')

data=soc.recv(1024)
print('我收到服务端回的',data)
#关闭链接
soc.close()

报错结果以下:
Traceback (most recent call last):
  File "E:/Python   jieshiqi/9月份练习/9月5日/网络协议/测试服务端01.py", line 11, in <module>
    soc.bind(('192.168.11.254',8080))  #若是写本机ip,局域网外部能够访问
OSError: [WinError 10049] 在其上下文中,该请求的地址无效。

报错缘由是每次网线链接都会产生新的IP地址,形成IP地址冲突,查看新的IP地址把旧的IP更换掉就能够解决这个问题
相关文章
相关标签/搜索