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神器对付12306变态验证码
Jan 05 Python
python非递归全排列实现方法
Apr 10 Python
5个很好的Python面试题问题答案及分析
Jan 19 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
python [:3] 实现提取数组中的数
Nov 27 Python
python能开发游戏吗
Jun 11 Python
Python 使用生成器代替线程的方法
Aug 04 Python
python时间time模块处理大全
Oct 25 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
AI:如何训练机器学习的模型
Apr 16 Python
python爬虫框架feapde的使用简介
Apr 20 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在线代理转向代码
2012/05/05 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
面试常见的js算法题
2017/03/23 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
Vue表单输入绑定的示例代码
2018/11/01 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
[00:16]热血竞技场
2019/03/06 DOTA
python正则表达式re模块详解
2014/06/25 Python
Python实现建立SSH连接的方法
2015/06/03 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
热血教师观后感
2015/06/10 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
Python基础之数据结构详解
2021/04/28 Python