首页 > 试题广场 >

2 [问答]同学之间合作编写UDP通信程序,分别编写发送端和

[问答题]
同学之间合作编写UDP通信程序,分别编写发送端和接收端代码,发送端发送一个字符串“Hello world!”。假设接收端在计算机的5000端口进行接收,并显示接收内容。
不知道
发表于 2018-10-06 09:56:42 回复(3)
# 服务端
import socket

HOST = '127.0.0.1'
PORT = 5000

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind((HOST, PORT))


print(f'Server start at: {HOST}:{PORT}')

while True:
    data, addr = s.recvfrom(1024)
    print(f'Received from {addr}')
    data = data.decode('utf-8')
    print(data)
    s.sendto(bytes(f'Server received {data}', encoding='utf-8'), addr)

s.close()
# 客户端
import socket


HOST = '127.0.0.1'
PORT = 5000


s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)


while True:
    cmd = input('Input your msg:')
    s.sendto(bytes(cmd, encoding='utf-8'), (HOST, PORT))
    data, addr = s.recvfrom(1024)
    print(data.decode('utf-8'))
发表于 2018-10-03 22:43:56 回复(0)
多线程udp聊天器
   import socket
   import threading
   
   def send_data(udp_socket, dest_addr):
       while True:
           send_msg = input("请输入要发送的数据:")
           udp_socket.sendto(send_msg.encode('gbk'), dest_addr)
       udp_socket.close()
   
   def recv_data(udp_socket, dest_addr):
       while True:
           recv_msg = udp_socket.recvfrom(1024)[0].decode('gbk')
           print("接收到来自% s 的消息:% s" %(dest_addr, recv_msg))
       udp_socket.close()
  
   def main():
       udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
       dest_addr = ('192.168.19.160', 5000)
       udp_socket.bind(("", 5000))
       t1 = threading.Thread(target = recv_data, args = (udp_socket,dest_addr))
       t2 = threading.Thread(target = send_data, args = (udp_socket, dest_addr))
       t1.start()
       t2.start()
  
   if __name__ == "__main__":
       main()

发表于 2019-04-22 16:26:46 回复(0)
服务端:
from socket import socket, AF_INET, SOCK_DGRAM

def socket_server(address, port):
    server = socket(AF_INET, SOCK_DGRAM)
    server.bind((address, port))

    while True:
        msg, addr = server.recvfrom(8192)
        print("Get message from %s: %s" % (addr, msg))

if __name__ == "__main__":
    socket_server('', 5000)
客户端:
from socket import socket, AF_INET, SOCK_DGRAM

def socket_client(address, port, send_msg):
    msg = bytes(send_msg.encode('utf-8'))
    server = socket(AF_INET, SOCK_DGRAM)
    server.sendto(msg, (address, port))

if __name__ == "__main__":
    socket_client('localhost', 5000, "Hello world!")

发表于 2020-06-06 10:26:42 回复(0)
1.
发表于 2020-04-30 10:24:28 回复(0)
标准答案的接收没有循环怎么接收?
发表于 2019-06-29 09:38:47 回复(0)