【问题标题】:Networkprogramming Python UDP recvfrom doesnt work网络编程 Python UDP recvfrom 不起作用
【发布时间】:2018-11-30 10:18:45
【问题描述】:
This is the server side
import socket

UDP_IP = 'localhost'
UDP_PORT = 6000

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # UDP
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
sock.bind((UDP_IP, UDP_PORT))

while True:
  data, addr = sock.recvfrom(1024)

   if data:
    sock.sendto(data.upper(),(UDP_IP,UDP_PORT) )
    sock.sendto(UDP_IP,(UDP_IP,UDP_PORT))
#print "sending"

这是客户端 导入套接字

UDP_IP = 'localhost'
UDP_PORT = 6000  
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # UDP



message = raw_input("Your Message: ")
sock.sendto(message, (UDP_IP, UDP_PORT))

data=sock.recvfrom(1024)
print "receiving"    #this line when running it does not print
localtime= time.asctime(time.localtime(time.time()))
print("Received:",data,"at",localtime)

sock.close()

如何修复客户端的代码以从服务器端接收数据?因为它没有打印出已经收到的数据。

【问题讨论】:

    标签: python sockets network-programming


    【解决方案1】:
    from socket import socket, AF_INET, SOCK_DGRAM
    
    
    def udp_server(host='localhost', port=3000, buffersize=4096, public=False):
        host = '0.0.0.0' if public else host
        address = (host, port)
        with socket(AF_INET, SOCK_DGRAM) as s:
            s.bind(address)
            while True:
                data, address = s.recvfrom(buffersize)
                print('Received:\t{} from {}'.format(data, address))
    
    
    
    def upload_data(payload, host='localhost', port=3000):
        """Upload data to server."""
    
        if payload:
            try:
                s = socket(AF_INET, SOCK_DGRAM)
                s.sendto(bytearray(payload), (host, port))
            finally:
                s.close()
    

    在解释器上运行服务器。然后在另一个上,调用`upload_data(b'hello')。

    注意,最好利用 socket 提供的上下文管理器来确保在完成后关闭所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2017-05-10
      • 2010-10-09
      • 2013-09-08
      相关资源
      最近更新 更多