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之入门(五)缩进和选择
May 27 Python
Python and、or以及and-or语法总结
Apr 14 Python
Python随机数random模块使用指南
Sep 09 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
pyQt5实时刷新界面的示例
Jun 25 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python dataframe NaN处理方式
Dec 26 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
DWR Ext 加载数据
2009/03/22 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
python网络爬虫采集联想词示例
2014/02/11 Python
python多重继承新算法C3介绍
2014/09/28 Python
python在不同层级目录import模块的方法
2016/01/31 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python随机数函数代码实例解析
2020/02/09 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
公积金单位接收函
2014/01/11 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
银行进社区活动总结
2014/07/07 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
移除Selenium中window.navigator.webdriver值
2022/06/10 Python