码迷,mamicode.com
首页 > 编程语言 > 详细

037.Python的UDP语法

时间:2021-01-26 12:17:52      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:查看端口   name   com   nav   服务器   end   val   tcp   服务端   

 


UDP语法

1 创建一个socket的UDP对象

import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM)
print (sk)

执行

技术图片
[root@node10 tcp]# python3 server.py
<socket.socket fd=3, 
family=AddressFamily.AF_INET,
type=SocketKind.SOCK_DGRAM,
proto=0,
laddr=(‘0.0.0.0‘, 0)>
技术图片

2 创建UAP连接

服务端

技术图片
import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM)

#在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) )

#udp服务器,第一次启动时,一定是先接收数据,在发送数据
msg,cli_addr = sk.recvfrom(1024)
print (msg.decode("utf-8"))

#关闭udp连接
sk.close()
技术图片

客户端

技术图片
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)

#sendto (要发送的消息,(IP地址,端口号))
sendto ("Nice to meet you!".encode("utf-8"),("127.0.0.1",9000) )
#关闭连接
sk.close()
技术图片

先执行服务端

[root@node10 tcp]# python3 server.py

被阻塞,查看端口信息

技术图片

再执行客户端

服务端收到消息

[root@node10 tcp]# python3 server.py
Nice to meet you!

3 循环发消息

服务端

技术图片
#服务端
import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM)

#在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) )

#udp服务器,第一次启动时,一定是先接收数据,在发送数据
while True:
        msg,cli_addr = sk.recvfrom(1024)
        print (msg.decode("utf-8"))
        print (cli_addr)

#关闭udp连接
sk.close()
技术图片

客户端

技术图片
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)

#sendto (要发送的消息,(IP地址,端口号))
while True:
        message = input("Please input the value:")
        sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
#关闭连接
sk.close()
技术图片

执行

技术图片
[root@node10 tcp]# python3 server.py
Hello                                #服务端接收的消息
(‘127.0.0.1‘, 34236)                  #打印出客户端的地址端口
Nice to meet you!
(‘127.0.0.1‘, 34236)
[root@node10 tcp]# python3 client.py  #客户端发送消息
Please input the value:Hello
Please input the value:Nice to meet you!
技术图片

4 服务端同时发送消息给客户端

服务端

技术图片
#服务端
import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM)

#在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) )

#udp服务器,第一次启动时,一定是先接收数据,在发送数据
while True:
        msg,cli_addr = sk.recvfrom(1024)
        print (msg.decode("utf-8"))
        print (cli_addr)
        #发送消息
        message = input("Please input your vaule>>>:")
        sk.sendto(message.encode("utf-8"),cli_addr)
#关闭udp连接
sk.close()
技术图片

客户端

技术图片
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)

#sendto (要发送的消息,(IP地址,端口号))
while True:
        message = input("Please input the value:")
        sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
        #接收数据
        msg,ser_addr = sk.recvfrom(1024)
        print (msg.decode("utf-8"))
#关闭连接
sk.close()
技术图片

执行

技术图片
[root@node10 tcp]# python3 server.py
Hi      #服务端接收数据
(‘127.0.0.1‘, 41800)
Please input your vaule>>>:Hi    #服务端发送的数据
Nice to meet you!
(‘127.0.0.1‘, 41800)
Please input your vaule>>>:Nice to meet you too!
[root@node10 tcp]# python3 client.py
Please input the value:Hi   #客户端发送数据
Hi                           #客户端接收到的数据
Please input the value:Nice to meet you!
Nice to meet you too!
Please input the value:
技术图片

 

037.Python的UDP语法

标签:查看端口   name   com   nav   服务器   end   val   tcp   服务端   

原文地址:https://www.cnblogs.com/wangsirde0428/p/14322642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!