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基础教程之序列详解
Aug 29 Python
跟老齐学Python之集合(set)
Sep 24 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
如何使用Python实现一个简易的ORM模型
May 12 Python
python3 hdf5文件 遍历代码
May 19 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
jQuery中on()方法用法实例
2015/01/19 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
深入分析python 排序
2020/08/24 Python
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
大学生英语演讲稿
2014/04/24 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
股指期货心得体会
2014/09/10 职场文书
催款函范本大全
2015/06/24 职场文书
电台广播稿范文
2015/08/19 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers