基于TCP协议之socket编程
2024-08-28 09:02:23
#服务端
#导入一个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更换掉就可以解决这个问题
最新文章
- NS2中修改载波侦听范围和传输范围
- Lingo 做线性规划 - DEA
- QCustomplot使用分享(三) 图
- SQL注入脚本(基于时间)
- C 构造一个 简单配置文件读取库
- Poj 2159 / OpenJudge 2159 Ancient Cipher
- 【转】.NET 三层架构 中 DAL+IDAL+Model+BLL+Web
- ASP.NET Web API 文件產生器 - 使用 Swagger
- 前端笔试题目小结--获取输入参数用户名;查询URL字符串参数
- ios中关于UIImagePickerController的一些知识总结
- JSP标准标签库(JSTL)--XML标签库 x
- margin问题
- MATLAB中“repmat”与“cat”函数的用法
- zabbix-agent(zabbix-proxy)配置
- CentOS安装和配置FTP
- 《Inside C#》笔记(十五) 非托管代码 上
- sessionpage1
- org.apache.ibatis.exceptions.TooManyResultsException的异常排查过程
- iOS中几种数据持久化方案
- Oracle数据库中日期/数字和字符之间的转换和计算
热门文章
- 攻克数通,斩获云计算!誉天Double HCIE学员考证秘笈揭晓
- python 实现图片批量加入水印!pillow 入门实战!
- 解析深度学习 语音识别实践 pdf下载
- 盒模型 | CSS权重 | CSS层叠
- 【RN - 基础】之React Native常见问题及解决方案
- PowerMock学习(十一)之Mock private methods的使用
- Java基础IO类之字符串流(查字符串中的单词数量)与管道流
- MySQL+Keepalived高可用配置
- 关于c++函数里面return的用法,关于调用的讲解
- Python一秒搭建ftp服务器,帮助你在局域网共享文件