python SOCKET编程基础入门


Posted in Python onFebruary 27, 2021

一、UDP编程

1.客户端Client:发起访问的一方。

2.服务器端

3.server段编程

(1)建立socket,socket是负责具体通信的一个实例

(2)绑定,为创建的socket指派固定的端口和IP地址

(3)接受对方发送内容

(4)给对方发送反馈,此步骤为非必须步骤

4.Client端编程

(1)建立通信的socket

(2)发送内容到指定服务器

(3)接受服务器给定的反馈内容

5.模拟一下这个过程

(1)我们先建立一个服务器的函数

#服务器案例

import socket

​

#模拟服务器的函数

def serverFunc():

  #1.建立socket

  #socket.AF_INET:使用IPV4协议族

  #socket.SOCK_DGRAM:使用UDP通信

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2.绑定ip和port

​

  #127.0.01:这个ip地址代表的是机器本身

  #7852:随机指定的端口号

  #地址是一个tuple类型,(ip.port)

  addr = ("127.0.0.1",7852)

  sock.bind(addr)

​

  #接受对方消息

  #等待方式为死等,没有其他可能性

  #recvfrom接受的返回值是一个元组,前一项表示数据,后一项表示地址

  #参数的含义是缓冲区大小

  #rst = sock.recvfrom(500)

  data,addr = sock.recvfrom(500)

​

  print(data)

  print(type(data))

​

  #发送过来的数据是bytes格式,必须通过解码才能得到str格式内容

  #decode默认参数是utf8

  text = data.decode()

  print(type(text))

  print(text)

​

  #给对方反馈的消息

  rsp = "I am very hungry now"

​

  #发送的数据需要编程成bytes格式

  #默认时utf8

  data = rsp.encode()

  sock.sendto(data,addr)

  

if __name__ == "__main__":

  print("Start Server")

  serverFunc()

print("End Server")

(2)然后创建一个客户端的函数

import socket

def clientFunc():

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  text = "you are very cool"

​

  #发送的数据必须是bytes格式

  data = text.encode()

  #发送

  sock.sendto(data,("127.0.0.1",7852))

  data,addr =sock.recvfrom(200)

​

  data = data.decode()

  print(text)

​

if __name__ == "__main__":

  print("Start Client")

  clientFunc()

print("End Client")

(3)我们先启动服务器端函数

出现如下图像,它是创建了一个sock,然后自己绑定到127.0.0.1:7852,运行到sock.recvfrom(500)这里死等客户端发消息

python SOCKET编程基础入门

(4)再启动客户端函数

出现如下发送编码后的​text内容到服务器(127.0.0.1:7852),服务器成功接收后返回you are cool这句话。

python SOCKET编程基础入门

(5)我们再看服务器的函数那里

接受了bytes格式的字符串,并打印出来了,然后再解码打印出来,最后把you are cool返回​客户端。

python SOCKET编程基础入门

(6)这里有个地方没有办法:因为我们在一台电脑上做的测试,所以相当于自言自语,​不如在两台电脑上进行试验。​

二、源码

D33_1_ServerProgramme.py

D33_2_ClientProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

以上就是python SOCKET编程基础入门的详细内容,更多关于python SOCKET编程的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
重命名批处理python脚本
Apr 05 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
详解python之协程gevent模块
Jun 14 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
python 对xml解析的示例
Feb 27 #Python
python如何发送带有附件、正文为HTML的邮件
Feb 27 #Python
pytorch __init__、forward与__call__的用法小结
Feb 27 #Python
python 实现有道翻译功能
Feb 26 #Python
Python爬取酷狗MP3音频的步骤
Feb 26 #Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 #Python
用python 绘制茎叶图和复合饼图
Feb 26 #Python
You might like
PHP中实现进程间通讯
2006/10/09 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
jquery ui对话框实例代码
2013/05/10 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
vue图片上传组件使用详解
2019/12/23 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
利用Python实现微信找房机器人实例教程
2019/03/10 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
总账会计岗位职责
2014/03/13 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
公司保洁员管理制度
2015/08/04 职场文书
员工担保书范本
2015/09/22 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers