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-socket使用套接字(UDP) -> 正文阅读

[网络协议]python-socket使用套接字(UDP)

"""
1.创建套接字
2.使用套接字收/发数据
3.关闭套接字

使用socket模块的函数socket完成
import socket
socket.socket(AddressFamily, Type)
AddressFamily:可以选择AF_INET(用户Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
Type:套接字类型,可以是SOCK_STREAM(流式套接字,主要用于TCP协议)或者SOCK_DGRAM(数据报套接字,主要用户UDP协议)

"""

import socket

def main():
    #1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    #2.使用套接字收发数据
    udp_socket.sendto(b"hahhaha", ("10.58.34.27", 8888))

    #3.关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()
"""
重点重点:接收udp数据
"""
import socket

def main():
    #1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    #2.绑定一个本地信息
    localaddr = ("", 7788)  #必须绑定自己电脑的ip和port,其他的不行
    udp_socket.bind(localaddr)
    while True:
        #3.接收数据
        recv_data = udp_socket.recvfrom(1024)   #这个变量中存储的是一个元组(接收到的数据, (发送方的ip,port))
        recv_msg = recv_data[0]     #存储接收的数据
        send_addr = recv_data[1]    #存储发送方的地址短信
        #4.打印接收到的数据
        #print(recv_data)
        print("%s:%s" %(str(send_addr), recv_msg.decode('gbk')))

    #5.关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()
"""
发送数据的流程:
1.创建套接字
2.发送数据
3.关闭


接收数据的流程
1.创建套接字
2.绑定本地自己的ip和port
3.接收数据
4.关闭


-----使用同一个套接字进行收发数据
"""
import socket

def main():
    #1.创建一个udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    #2.获取对方的ip/port
    dest_ip = input("请输入对方的ip:")
    dest_port = int(input("请输入对方的port"))
    #3.从键盘获取数据
    send_data = input("请输入要发送的数据:")
    #4.可以使用套接字收发数据
    udp_socket.sendto(send_data.encode('gbk'), (dest_ip, dest_port))
    #5.接收回送过来的数据
    recv_data = udp_socket.recvfrom(1024)
    print(recv_data)
    #6.关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:45:58  更:2021-11-10 12:48:43 
 
开发: 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年7日历 -2024/7/1 21:00:57-

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