我是一个网络编程的初学者。我有一项任务要我做
客户端提示用户输入字符串。 然后,客户机将假定长度为n的字符串S拆分为两个字符串S1和S2,如果n为偶数,则这两个字符串的长度为n/2;如果n为奇数,则这两个字符串的长度分别为(n+1)/2和(n−1)/2。 然后,客户: 1在两个不同的UDP包中向服务器发送S1和S2; 2.在另一个UDP包中等待来自服务器的字符串R; 3.检查R是否等于S2和S1的并置; 4.向用户显示最终测试的结果。你知道吗
服务器不断等待UDP消息。 服务器等待包含字符串S1和S2的两个不同UDP消息序列。 然后服务器: 1在两个不同的UDP包中接收S1和S2; 2将R构造为S2和S1的串联; 三。将R作为UDP包发送到客户端; 4又开始了。你知道吗
import socket
import sys
HOST = "localhost"
PORT = 9999
s = input("Enter a string S: ")
n = len(s)
if (n%2) == 0:
s1 = s[:(n//2)]
s2 = s[(n//2):]
print("String s1 is: "+s1)
print("String s2 is: "+s2)
else:
s1 = s[:(n + 1)//2]
s2 = s[(n + 1)//2:]
print("String s1 is: "+s1)
print("String s2 is: "+s2)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(s1.encode() ,(HOST, PORT))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(s2.encode() ,(HOST, PORT))
received = sock.recv(1024)
received.decode()
if received == s2 + s1:
print("Sent: "+ s2 + s1)
print("Received: "+received)
sock.close()
-------------------------------------------------------------------
import socketserver
class MyUDPHandler(socketserver.DatagramRequestHandler):
def handle(self):
data1 = self.request[0]
data2 = self.request[0]
print("Wrote :")
print(data1.decode())
print(data2.decode())
result = data2 + data 1
self.request[1].sendto(result, self.client_address)
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
server.serve_forever()
代码运行得很差。它没有给我s2+s1。它只能正确地分割字符串。我不知道出了什么问题。非常感谢您的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐