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 相关文章推荐
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
python列表的增删改查实例代码
Jan 30 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
Pytorch之卷积层的使用详解
Dec 31 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
python中id函数运行方式
Jul 03 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中文字母数字验证码实现代码
2008/04/25 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
yii操作session实例简介
2014/07/31 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php实现的简单日志写入函数
2015/03/31 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
jquery 上下滚动广告
2009/06/17 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python语言的优势是什么
2020/06/17 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
研究生毕业鉴定
2014/01/29 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
运动员获奖感言
2014/08/15 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js