IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Python- UDP通信编程和TCP通信编程 -> 正文阅读

[网络协议]Python- UDP通信编程和TCP通信编程

UDP通信编程-客户端发送一个字符串,假设服务器端在本机1024端口进行监听,并显示接收的内容,如果收到字符串“结束通话”,则结束监听

服务端代码

# 服务端代码
import socket            # 导入socket模块
serversocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)       # 使用socket模块
port = 1024                              # 定义端口号
host = "192.168.31.6"                     # 主机地址
address = (host,port)                     # 组件元组对象
serversocket.bind(address)                # 绑定指定地址
print("正在接收用户消息.....")               # 输出
while True:                               # 建立循环,不断接受用户请求信息
    data,addr = serversocket.recvfrom(1024)      # 不断接受用户请求信息,最大接受1024字节
    receivetext=data.decode()                 # 字节码转换为字符串类型
    if receivetext=="结束通信":                 # 判断接受到的数据是否为结束通信
        break
    else:
        print('来自于{0}的信息:{1}'.format(addr,receivetext))
        serversocket.sendto(data,addr)            # 发送消息给客户端

serversocket.close()

接收端代码

import socket                                # 导入socket模块

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 使用socket模块 创建套接字对象
port = 1024                                  # 定义端口号
host = "192.168.31.6"                         # 主机地址
address = (host, port)                        # 构建发送信息的目标地址
while True:                                   # 建立循环,无限发送信息
    inputtext = input("请输入信息:").encode()   # 字节码转换为字符串类型
    clientsocket.sendto(inputtext, address)
    if inputtext.decode() == "结束通信":        # 判断接受到的数据是否为结束通信
        break
    else:                                        # 判断接受到的数据不是结束通信
        data, addr = clientsocket.recvfrom(1024)
        data = data.decode()
        print("系统分配地址{}".format(clientsocket.getsockname()))
        print("服务器{0}回答{1}".format(address, data))

clientsocket.close()

运行结果:

?

?TCP通信编程:使用TCP协议,客户端发送一个字符串,假设服务器端在本机12345端口进行监听,并显示接收的内容,如果收到字符串“结束通话”,则结束监听。

服务端代码

from socket import *                # 导入模块
from time import ctime

serversocket = socket(AF_INET,SOCK_STREAM)        # 使用socket模块中的socket对象创建服务端的套接字
addr = ('localhost',12345)                        # 套接字对象绑定在指定的地址上
serversocket.bind(addr)
serversocket.listen(1)                            # 监听设置
while 1:                                       # 建立循环,不断接受多个客户端请求
    print("正在接收用户信息......")
    client, addr_client = serversocket.accept()       # 等待客户端的连接
    print("信息来自于:",addr_client)
    while 1:                                    # 内嵌循环,可以完成与当前客户端的多次通信
        data = client.recv(1024).decode()
        s = "[%s]接收到信息:%s" % (ctime(),data)          # 构建响应消息,反馈给客户端
        s = s.encode()                              # 字符串转换为字节码对象
        client.send(s)
        if data=="结束通信":                         # 判断请求信息
            break
    print("此次服务到此结束!")
    client.close()

serversocket.close()

?接收端代码

from socket import *                   # 导入模块
clientsocket = socket(AF_INET,SOCK_STREAM)       # 使用socket模块中的socket对象创建
addr = ('localhost',12345)                 # 套接字对象绑定在指定的地址上
clientsocket.connect(addr)                 # 与服务端进行连接
while 1:                                    # 建立循环,不断与服务端发送请求信息
    inputtext = input("请输入信息:")           # 用户从终端输入请求信息
    clientsocket.sendall(inputtext.encode())        # 请求信息发送给服务端
    data = clientsocket.recv(1024).decode()         # 字节码转换为字符串
    print(data)
    if inputtext=="结束通信":                   # 判断用户结束通信
        break
clientsocket.close()

运行结果:

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:47:24  更:2022-04-04 12:50:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:24:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码