基于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更换掉就可以解决这个问题



posted @ 2019-09-11 14:49  大海一个人听  阅读(307)  评论(0编辑  收藏  举报