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中定义结构体的方法
Mar 04 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
python pytest进阶之fixture详解
Jun 27 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
python七种方法判断字符串是否包含子串
Aug 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 之Section与Cookie使用总结
2012/09/14 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python如何实现图片压缩
2020/09/11 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
幼儿园小班评语
2014/04/18 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
检讨书1000字
2014/10/11 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年残联工作总结
2014/11/21 职场文书
2014全年工作总结
2014/11/27 职场文书
应届生简历自我评价
2015/03/11 职场文书
2019年大学推荐信
2019/06/24 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书