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的print用法示例
Feb 11 Python
改进Django中的表单的简单方法
Jul 17 Python
SQLite3中文编码 Python的实现
Jan 11 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
基于python log取对数详解
Jun 08 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Python实现快速排序的方法详解
Oct 25 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python 实现PIL模块在图片画线写字
May 16 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 Python
Django后端按照日期查询的方法教程
Feb 28 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 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
jquery异步跨域访问代码
2013/06/28 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
js实现返回顶部效果
2017/03/10 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python库urllib与urllib2主要区别分析
2014/07/13 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python检测网站链接是否已存在
2016/04/07 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
毕业自荐信
2013/12/16 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
小学运动会加油词
2015/07/18 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
2015初中团委工作总结
2015/07/28 职场文书
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
SQL Server中的游标介绍
2022/05/20 SQL Server