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根据京东商品url获取产品价格
Aug 09 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
python中列表和元组的区别
Dec 18 Python
python实现k-means聚类算法
Feb 23 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
python 决策树算法的实现
Oct 09 Python
用python读取xlsx文件
Dec 17 Python
python SOCKET编程基础入门
Feb 27 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对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
js document.write()使用介绍
2014/02/21 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
程序集与命名空间有什么不同
2014/07/25 面试题
cf搞笑广告词
2014/03/14 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
计生个人工作总结
2015/02/28 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
Python学习开发之图形用户界面详解
2021/08/23 Python