基于udp的scoket通信

Posted whylinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于udp的scoket通信相关的知识,希望对你有一定的参考价值。

  1.udp例子1

  udpserver.py

# udp的server,不需要进行监听也不需要建立连接
    # 在启动服务之后只能被动的等待客户端发送消息过来
    # 客户端发送消息的同时还会自带地址信息
    # server消息回复的时候,不仅需要发送消息,还需要带上对方的地址


import socket

sk = socket.socket(type=socket.SOCK_DGRAM)  # 创建udp的socket

sk.bind((127.0.0.1, 8080))    # 绑定ip与端口

info = ‘‘
while True:
    msg, addr = sk.recvfrom(1024)   # 阻塞接收数据,得到数据内容与目标的ip地址
    print(msg.decode(utf-8))
    info = input(发送到client的数据内容:)
    sk.sendto(info.encode(utf-8), addr)    # 消息内容,并且指定目标IP端口发送

sk.close()

  udpclient1.py

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)

ip_port = (127.0.0.1, 8080)

info = ‘‘
while True:
    info = input(发送到udp服务端的内容:)
    sk.sendto(info.encode(utf-8), ip_port)    # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数
    msg, addr = sk.recvfrom(1024)   # 阻塞接收数据,得到目标发送的信息和目标的ip端口
    print(msg.decode(utf-8))

sk.close()

  ucpclient2.py

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)

ip_port = (127.0.0.1, 8080)

info = ‘‘
while True:
    info = input(发送到udp服务端的内容:)
    sk.sendto(info.encode(utf-8), ip_port)    # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数
    msg, addr = sk.recvfrom(1024)   # 阻塞接收数据,得到目标发送的信息和目标的ip端口
    print(msg.decode(utf-8))

sk.close()

 

  2.简单udp时间服务器例子

  udpserver.py

# udp server端提供服务
    # 接收信息  时间格式
    # 将server端的时间转换成接收到的时间格式的格式,发送给udp客户端

import socket
import time

sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind((127.0.0.1, 8080))
msg = ‘‘
addr = ()
while True:
    msg, addr = sk.recvfrom(1024)
    if msg.decode(utf-8) == bye:
        break
    sk.sendto(time.strftime(msg.decode(utf-8)).encode(utf-8), addr)

sk.close()

  udpclient.py

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)
ip_port = (127.0.0.1, 8080)
sk.sendto(b%Y-%m-%d %H:%M:%S, ip_port)
msg, addr = sk.recvfrom(1024)
print(msg.decode(utf-8))

 

以上是关于基于udp的scoket通信的主要内容,如果未能解决你的问题,请参考以下文章

Java中的Scoket编程

Java——scoket通讯

python实现TCP/UDP通信

python方式实现scoket通信

Scoket (最简单的Scoket通信)

java中网络通信 Scoket