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列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
python中随机函数random用法实例
Apr 30 Python
Python编程入门的一些基本知识
May 13 Python
Python判断Abundant Number的方法
Jun 15 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
python把1变成01的步骤总结
Feb 27 Python
Python面向对象思想与应用入门教程【类与对象】
Apr 12 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
Python定义一个函数的方法
Jun 15 Python
Python识别处理照片中的条形码
Nov 16 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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连mysql和oracle数据库性能比较
2006/10/09 PHP
php学习 字符串课件
2008/06/15 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
计算机专业毕业生自荐信范文
2014/03/06 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
师德师风自查材料
2014/10/14 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
比赛主持人开场白
2015/05/29 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
Python利用capstone实现反汇编
2022/04/06 Python
Python实现视频自动打码的示例代码
2022/04/08 Python
Pillow图像处理库安装及使用
2022/04/12 Python