本文由 千趣源码 – qianqu 发布,转载请注明出处,如有问题请联系我们!udpsocket使用编程-socket通信原理
序
应用TCP的朝向流的tcp协议,今日的UDP的工作方式有别于TCP/IP。UDP是一种客户信息报协议书和朝向信息的协议书。
一方面,UDP不用长时间的积极联接,因此创建UDPtcp协议5201;简单一点。另一方面,UDP信息务必放到数据信息报中。
在IPv4中,数据信息报包括65507个字节数,这种字节数还包括报头信息内容。由于UDP不用长期性联接,因此没法获得TCP能够给予的无用确保。
网络服务器编码
由于UDP沒有联接,因此网络服务器不用监视和接受联接。它只要应用bing()将其tcp协议与一个端口号密切相关,随后等候每一个信息。
实例编码如下所示:
import socket# 1.建立一个tcp协议,sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind(('localhost', 10000))while True: data, address = sock.recvfrom(4096) print(data.decode('UTF-8'), address) if data: sent = sock.sendto('已接受到你发过来的信息'.encode('UTF-8'), address)在其中,recvfrom()表明从tcp协议载入信息,如顾客,但推送信息后,信息和顾客但详细地址都在这其中。
Sendto()非常容易了解,便是给他人发信息。主要1442;数1表明信息內容,主要参数2表明发送至哪儿(即另一方的详细地址)。
手机客户端编码
自然,手机客户端比网络服务器简易,由于UDP不用联接,因此能够同时向服务器发送信息,应用recvfrom()开展回应。事例如下所示:
import socketsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)try: msg = "推送短信息到网络服务器".encode('utf-8') sent = sock.sendto(msg, ('localhost', 10000)) data, server = sock.recvfrom(4096) print(data.decode())finally: sock.close()一样,这儿sock.recvfrom()用以接受网络服务器意见反馈的信息內容和详细地址。运作后,实际效果如下所示:








