Python——Socket编程
2024-10-16 18:19:14
一、TCP
1、客户端
import socket
sk = socket.socket() # 买个手机
sk.connect(('127.0.0.1',8080)) # 拨号
ret = sk.recv(1024)
print(ret)
sk.send(b'byebye!')
sk.close()
2、服务端
import socket
sk = socket.socket() # 创建了一个socket对象
sk.bind(('192.168.21.36',8080)) # 绑定一台机器的(ip,端口)
# 回环地址 - 指向自己这台机器
sk.listen() # 建立监听等待别人连接
conn,addr = sk.accept() # 阻塞:在这里等待直到接到一个连接
# conn是连接
# addr是对方的地址
print(conn)
print(addr)
conn.send(b'hello') # 和对方打招呼
msg = conn.recv(1024) # 对方和我说的话
# 有发必有收 收发必相等
print(msg)
conn.close() # 挂电话
sk.close() # 关机
二、UDP
UDP的server不需要进行监听也不需要建立连接,在启动服务值周,只能被动的等待客户端发送消息过来
客户端发送消息的同时还会自带地址信息,消息回复的时候,不仅需要发送消息,还需要把自己的地址发送过去
1、客户端
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'hello',('127.0.0.1',8080)) # 直接给服务器发送一段消息
msg,addr = sk.recvfrom(1024) # 接收对面的回信
print(msg)
sk.close()
2、服务端
import socket
sk = socket.socket(type=socket.SOCK_DGRAM) # 建立一个socket对象,
# 指定以UDP协议的形式来连接
sk.bind(('127.0.0.1',8080))
# 指定服务的地址
msg,addr = sk.recvfrom(1024) # 接收消息,发送端的地址
print(msg,addr)
sk.sendto(b'HELLO',addr) # 给发送端回复消息
sk.close() # 关闭socket连接
最新文章
- Lintcode 97.二叉树的最大深度
- PHP、Java对称加密中的AES加密方法
- 使用jQuery清空file文件域的解决方案(转)
- DCOM中的APPID的用处,以及RemoteServerName的传递问题
- UVA1347 旅游(二维递归DP)
- CF 445A 简单DP
- 20145120 《Java程序设计》第2周学习总结
- 三、spark入门:文本中发现5个最常用的word,排除常用停用词
- 仿bootstrap的
- 04.redis集群+SSM整合使用
- Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室
- ScalaPB(3): gRPC streaming
- Java Socket网络编程学习笔记(一)
- 字符串常量池和String.intern()方法在jdk1.6、1.7、1.8中的变化
- 基于IAR平台FreeRTOS移植
- c/c++ 标准容器 vector的内存空间是如何自动增长的
- sharepoint环境安装过程中几点需要注意的地方
- SQL 游标的存储过程示例
- wap2app(三)-- 添加引导页
- ​python高级数据可视化视频Dash1