Python连载52-SOCKET编程示例
一、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)这里死等客户端发消息
(4)再启动客户端函数
出现如下发送编码后的text内容到服务器(127.0.0.1:7852),服务器成功接收后返回you are cool这句话。
(5)我们再看服务器的函数那里
接受了bytes格式的字符串,并打印出来了,然后再解码打印出来,最后把you are cool返回客户端。
(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
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Python连载52-SOCKET编程示例的更多相关文章
- python基础之socket编程 (转自林海峰老师)
python基础之socket编程 阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 ...
- Python 基础之socket编程(二)
Python 基础之socket编程(二) 昨天只是对socket编程做了简单的介绍,只是把socket通信的框架搭建起来,要对其中的功能进行进一步的扩充,就来看看今天的料哈! 一.基于tcp的套接字 ...
- 多线程Java Socket编程示例
package org.merit.test.socket; import java.io.BufferedReader; import java.io.IOException; import jav ...
- Python 基础之socket编程(三)
python 基础之socket编程(三) 前面实现的基于socket通信只能实现什么呢?在tcp协议的通信中就是一个用户说一句,服务端给你回一句,你再给服务端说一句,服务端再给你回一句,就这样一直友 ...
- Python 基础之socket编程(一)
Python 基础之socket编程(一) 可以进行通信玩儿了,感觉不错不错,网络通信就像打电话,我说一句你听一句之后,你再说一句,我听一句,就这样.....下去了.不扯淡了,来来来,看看今天都搞了点 ...
- Python Socket 编程示例 Echo Server
简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...
- 十三python基础之socket编程
阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现 ...
- python基础之socket编程
一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 十 什么是 ...
- Linux socket编程示例(最简单的TCP和UDP两个例子)
一.socket编程 网络功能是Uinux/Linux的一个重要特点,有着悠久的历史,因此有一个非常固定的编程套路. 基于TCP的网络编程: 基于连接, 在交互过程中, 服务器和客户端要保持连接, 不 ...
- python进阶---Python中的socket编程
初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...
随机推荐
- iOS中nil、 Nil、 NULL和NSNull的区别
参考链接:https://www.jianshu.com/p/c3017ae6684a
- linux离线安装mysql5.7
下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 上传到 / ...
- 跨平台版本迁移之 XTTS 方案操作指南
本文转自 https://blog.csdn.net/Enmotech/article/details/80045576 作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工 ...
- MySQL数据库:合并结果集
合并结果集 union----合并结果集 对合并后的结果集中的重复数据也会自动去重 select sName from students union select tName from Teacher ...
- Java+TestNG+Maven+Excel+IDEA接口自动化入门(一)环境配置
前置: 1.本机环境安装了maven并配置环境变量 2.本机环境安装了IDEA软件 3.本机环境安装了Java jdk 8版本 4.有一定java和maven基础 因为以上网上例子很多,就不再重复赘述 ...
- MATLAB实例:散点密度图
MATLAB实例:散点密度图 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ MATLAB绘制用颜色表示数据密度的散点图 数据来源:MATLAB中“fit ...
- 第一篇:C++之hello world
1.编辑器:Microsoft Visual C++ 2010,下载安装 2.新建项目 代码: #include <iostream>#include <Windows.h>/ ...
- selenium-server-standalone下载网站
http://selenium-release.storage.googleapis.com/index.html
- ubuntu 18.04多应用窗口切换的快捷键使用指南
前记 使用ubuntu时间长了,很厌烦用鼠标来点来点去.重复操作的,还是快捷键比较方便.在多窗口切换方面,熟悉了几个快捷键之后,顿时感觉神清气爽.这里就推荐给大家学习一下,提高工作效率啊. 常用快捷键 ...
- H5移动端开发遇见的东西
常见的有viewport.强制浏览器全屏.IOS的Web APP模式.可点击元素出现阴影 本文主要讲一些其他的或者实用的优化手段. 1. 弹出数字键盘 <!-- 有"#" & ...