Python socket基本写法
TCP:长连接,安全可靠,不会丢包,但是会发生黏包,面向流的传输,超长的数据包会被拆包发送
多条send的小数据会连在一起发送,造成黏包现象,是tcp协议内部的优化算法造成的
如果要发送特别大的数据时候,要明确告诉接收方数据的长度,这样就不会发生黏包,要在文件中增加一个配置项,就是每一次recv的大小,一般不要超过4096
#server.py
import socket
sk = socket.socket()
sk.bind(("127.0.0.1",8080))
sk.listen()
conn,addr = sk.accept()
ret = conn.recv(1024)
print(ret.decode("utf-8"))
conn.send(b"server")
conn.close()
sk.close()
#client.py
import socket
sk = socket.socket()
sk.connect(("127.0.0.1",8080))
sk.send(b"clent")
ret = sk.recv(1024).decode("utf-8")
sk.close()
UDP:短链接,不可靠,会发生丢包,不会黏包,面向消息,长度有限制,超过限制,超过的部分就不发送
#server.py
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(("127.0.0.1",8080))
msg,addr = sk.recvfrom(1024)
msg = msg.decode("utf-8")
print(msg)
sk.sendto(b"server",addr)
sk.close()
#client.py
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
ip_port = ("127.0.0.1",8080)
sk.sendto(b"client",ip_port)
msg,addr = sk.recvfrom(1024)
print(msg.decode("utf-8"))
Python socket基本写法的更多相关文章
- Python socket编程之二:【struct.pack】&【struct.unpack】
import struct """通过 socket 的 send 和 recv 只能传输 str 格式的数据""" "" ...
- Python Socket 编程——聊天室示例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- python socket发送魔法包网络唤醒开机.py
python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...
- Python Socket,How to Create Socket Server? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- Python Socket,How to Create Socket Cilent? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- Python Socket单线程+阻塞模式
Python之旅]第五篇(二):Python Socket单线程+阻塞模式 python Socket单线程 Socket阻塞模式 串行发送 摘要: 前面第五篇(一)中的一个Socket例子其实就是 ...
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
随机推荐
- 几句话总结一个算法之DQN
DQN利用深度学习对Q-learning的一个扩展,回顾上篇文章,Q-learning的核心在于Q(s,a)的建模.如果状态s非常复杂,很难通过一张表来存储所有的状态. 深度学习正好可以自动提取s的特 ...
- java基础 面向对象 & 接口 & 抽象类
从语法层面而言,接口和抽象类的区别如下: 1.抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法(默认 public abstract)2.抽象类中的成员变量可以是多种类型,而接口中的成员变量 ...
- Python 的文件保存路径
1.保存在当前代码同级的目录下: 2.保存在代码文件夹外面一层的新文件夹(data文件夹与代码文件夹同级)里: 3.保存在下一级的子文件夹里
- | C语言I作业01
C语言I作业01 标签:18软件 李煦亮 1.1 你对软件工程专业了解是怎样? 对软件工程的了解是从人工智能频繁地出现在各大新闻,新闻报道了许多高校针对人工智能开设了相关课程或者专业,软件工程是开设的 ...
- [转帖]面试问Kafka,这一篇全搞定
面试问Kafka,这一篇全搞定 https://os.51cto.com/art/201911/606207.htm 图片来自 Pexels Kafka 基础 消息系统的作用 大部分小伙伴应该都清楚, ...
- kubernetes支持local volume
目录 local volume 创建一个storage class 静态创建PV 使用local volume PV 动态创建PV local volume kubernetes从1.10版本开始支持 ...
- Google Guava Cache 全解析
Google guava工具类的介绍和使用https://blog.csdn.net/wwwdc1012/article/details/82228458 LoadingCache缓存使用(Loadi ...
- protoc文件生成cs文件
1.下载protoc工具 点击下载 2.下载解压后打开文件,其中有一个.bat文件,里面对应命令行如下: 编写如下命令行 protoc.exe -I=. --csharp_out=. --grpc_ ...
- Linux下通过md5sum生成MD5文件&校验MD5
生成md5值 随便找个文件执行:md5sum file_name 即可生成该文件对应md5值. 也可以一次生成多个文件的md5值:md5sum file_name1 file_name2 file_ ...
- windows环境:dos 通过ftp连接到vsftpd 显示乱码解决方法
转载至:https://blog.csdn.net/nydia_xiangxiang/article/details/48627921?utm_source=blogxgwz8 感谢原作者的分享 FT ...