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之dict()的操作方法
Sep 24 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
python安装pil库方法及代码
Jun 25 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
Mar 09 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
Pandas-DataFrame知识点汇总
Mar 16 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生成16位随机数的代码(两种方法)
2014/09/16 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python numpy 按行归一化的实例
2019/01/21 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python的等深分箱实例
2019/11/22 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
公司合作协议书范本
2014/04/18 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
运动会表扬稿
2015/01/16 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书