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 21 Python
基于wxpython实现的windows GUI程序实例
May 30 Python
快速查询Python文档方法分享
Dec 27 Python
使用Eclipse如何开发python脚本
Apr 11 Python
Django中的ajax请求
Oct 19 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
python与idea的集成的实现
Nov 20 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python3字符串学习教程
2015/08/20 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python 的类、继承和多态详解
2017/07/16 Python
Python三级菜单的实例
2017/09/13 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
肯尼迪就职演说稿
2013/12/31 职场文书
新任教师自我鉴定
2014/02/24 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
写得不错的求职信范文
2014/07/11 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
运动会宣传稿50字
2015/07/23 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python