首页 > 其他分享 >UDP

UDP

时间:2023-01-12 00:44:48浏览次数:34  
标签:UDP socket ip udp 发送 接字

UDP

UDP是一种全双工通信协议。 UDP协议首部中有一个16位的大长度. 也就是说一个UDP能传输的报文长度是64K(包含UDP首部)。如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装

 

一.UDP套接字(套接字是互联网用户层的接口,可以实现不同终端间的数据传递)

import socket

# 创建udp套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

# 使用udp套接字向目标ip、端口发送消息
udp_socket.sendto(b'qwer',('192.168.1.4',7890))
sendto第一个参数是发送内容,必须是字节类型,第二个参数是目标ip和端口,必须是元祖类型

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

二.udp套接字绑定本地ip和端口接收数据

绑定本地ip和端口是为了发送方有明确的地址和端口,类似写信的模式,地址和门牌号,只有绑定了自家地址才能接收数据。

使用:

import socket

# 创建udp套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

# 绑定本地信息
udp_scoket.bind(('',7890))

# 使用udp套接字向目标ip、端口发送消息
udp_socket.sendto(b'qwer',('192.168.1.4',7890))
sendto第一个参数是发送内容,必须是字节类型,第二个参数是目标ip和端口,必须是元祖类型

# 接收数据
recv_data = udp_scoket.recvfrom(1024) 接收数据大小

# 打印接收数据
print('recv_data')

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

 

三.UDP多人聊天

import socket

 

def send_msg(udp_socket):
"""
发送消息
:return:
"""
# 发送
udp_nei = input('情输入要发送的消息:')
udp_ip = input('情输入对方的ip:')
udp_port = input('情输入对方的port:')

udp_socket.sendto(udp_nei.encode('utf-8'), (udp_ip, int(udp_port)))

return 'ok'

def recv_msg(udp_socket):

recv_data = udp_socket.recvfrom(1024)
print(recv_data[0], recv_data[1])

return 'ok'

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

# 绑定本地信息
udp_socket.bind(('',7788))

# 循环来进行处理事情
while True:
print('=====帅哥美女聊天室=====')
con = input('请输入功能:'
'1.发送消息'
'2.接收消息'
'3.关闭聊天室')

if int(con) == 1:
# 发送
send_msg(udp_socket)

elif int(con) == 2:
# 接收并显示
recv_msg(udp_socket)

elif int(con) == 3:
udp_socket.close()
break

 

 

if __name__ == '__main__':
main()

 

标签:UDP,socket,ip,udp,发送,接字
From: https://www.cnblogs.com/cll9/p/17045270.html

相关文章

  • 关于华普物联HP-ERS-T200串口服务器UDP 连接互联网服务器操作案例
    本案例使用“路由侠”模拟互联网服务器,使用“路由侠”生成的外网地址进行测试。   硬件连接 将HP-ERS-T200通过USB转RS232串口线连接到PC的USB口上,HP......
  • 关于华普物联HP-ERS-T200串口服务器UDP局域网通讯案例
    硬件连接两个HP-ERS-T200分别通过USB转RS232串口线连接到PC的USB口上,通过上位机设置参数,设置完参数后,将两个HP-ERS-T200通过网线直连。 电脑COM口号确认......
  • stream TCP&UDP反向代理配置,设置stream 日志打印格式
    stream{    log_formatldyhttps            '$remote_addr|[$time_local]|$protocol|$status|$connection|$session_time|$upstream_connect_time|'......
  • UDP比TCP快吗
    话说,UDP比TCP快吗?相信就算不是八股文老手,也会下意识的脱口而出:"是"。这要追问为什么,估计大家也能说出个大概。 但这也让人好奇,用UDP就一定比用TCP快吗?什么情况下用U......
  • Apple开发_使用 GCDAsyncUdpSocket 发送组播消息报错"No route to host"的解决
    1、问题描述苹果手机升级到ios14.5系统后,使用GCDAsyncUdpSocke发送组播消息的时候,发现报错了,ErrorDomain=NSPOSIXErrorDomainCode=65"Noroutetohost"UserInfo=......
  • C++ - TCP/UDP网络编程
    前言socket编程分为TCP和UDP两个模块,其中TCP是可靠的、安全的,常用于发送文件等,而UDP是不可靠的、不安全的,常用作视频通话等。如下图:头文件与库:#include<WinSock2.h>......
  • java基础:UDP通信
    原文:Java实现UDP通信-简书(jianshu.com)UDP(UserDatagramProtocol),即用户数据报协议,UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据......
  • 【网络】udp_socket编程
    在上一讲中我们知道了网络传输的基本流程,本节我们要更加深刻的理解一下两台主机之间交互的本质。我们在网络通信的时候,只要让两台主机能够通信就可以了吗??实际上,在进行通信的......
  • TCP和UDP协议之间的区别,前端基础面试题
    前端基础面试题,TCP和UDP协议之间的区别tcp和udp作为传输层的两个协议,主要区别:1,tcp是面向链接的,(http协议握手)就类似打电话要先建立拨号,在进行链接。而udp在发送前......
  • 第十五章《网络编程》第4节:基于UDP协议的网络编程
    ​UDP协议是一种不可靠的网络协议,之所以说这种协议不可靠,是因为它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路。这两个Socket只是发送、接收数据报......