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()如何修改客户端接收服务器端数据的代码?因为它不打印已经接收到的数据。
发布于 2018-11-30 10:18:46
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提供的上下文管理器来确保在完成时关闭所有内容,这是很好的。
https://stackoverflow.com/questions/53549938
复制相似问题