我希望服务器脚本查找已连接到服务器的客户端,然后让服务器将消息发送回该客户端。
我已成功连接并可以将字节从客户端发送到服务器,但是从服务器向客户端发送时遇到了麻烦。我尝试使用clientSocket, address = mySocket.accept()
查找已连接的客户端,但随后我得到了错误消息:
服务器
import socket
mySocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
myIP = socket.gethostname()
myPort = 1234
mySocket.bind((myIP, myPort))
while True:
clientSocket, address = mySocket.accept()
clientSocket.send(bytes("Connected", "utf-8"))
客户
import socket
myIP = socket.gethostname()
myPort = 1234
s1 = "string1"
s2 = "string2"
s3 = "string3"
mySocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
mySocket.sendto(bytes(s1, "utf-8"), (myIP, myPort))
mySocket.sendto(bytes(s2, "utf-8"), (myIP, myPort))
mySocket.sendto(bytes(s3, "utf-8"), (myIP, myPort))
我已经看到了使用accept()
来实现此目的的教程,但是它对我没有用。
答案 0 :(得分:0)
使用float_1 = 5.0
float_2 = 3.1
float_3 <- 4.2
float_11 <- 11.2
创建一个UDP套接字,而不是TCP套接字。您不能在UDP套接字上使用SOCK_DGRAM
,因为它们永远不会处于“已连接”状态。这也意味着您不能使用send()
,因为UDP套接字不是面向连接的。您可能需要一个accept()
类型的套接字。如果您确实想要UDP(数据报)套接字,请参见https://www.geeksforgeeks.org/udp-server-client-implementation-c/,以获取有关其工作原理的教程。