Python 我正在测试TCP客户端和服务器是否在通信,但在运行时,客户端什么也不做
我有一个任务,我必须编写TCP客户机-服务器python程序来实现一个基本的投票应用程序。只有两位候选人:约翰和詹德。我正在测试客户端和服务器之间的通信。因此,当我运行客户端时,什么都没有发生。有人能告诉我为什么吗 起初,我使用“localhost”作为serverName,但我一直遇到这样的错误:clientSocket.connect((“localhost”,serverPort)) ConnectionRefusedError:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它 因此,我将服务器名设置为本地IP。客户端运行,但什么也没发生Python 我正在测试TCP客户端和服务器是否在通信,但在运行时,客户端什么也不做,python,tcp,network-programming,Python,Tcp,Network Programming,我有一个任务,我必须编写TCP客户机-服务器python程序来实现一个基本的投票应用程序。只有两位候选人:约翰和詹德。我正在测试客户端和服务器之间的通信。因此,当我运行客户端时,什么都没有发生。有人能告诉我为什么吗 起初,我使用“localhost”作为serverName,但我一直遇到这样的错误:clientSocket.connect((“localhost”,serverPort)) ConnectionRefusedError:[WinError 10061]无法建立连接,因为目标计算机
#TCP CLIENT#
from socket import*
#serverName = "localhost"
serverName = "131.100.39.41"
serverPort = 9001
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect(("131.100.39.41", serverPort))
option = input("Enter the voter name: ")
clientSocket.send(bytes(option, "utf-8"))
print("Name sent to server.", option)
clientSocket.close()
这是服务器端
#TCP SERVER#
from socket import*
serverPort = 9001
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(("", serverPort))
serverSocket.listen(1)
print("Server is up and running.")
while(1):
connectionSocket, addr = serverSocket.accept()
option = connectionSocket.recv(1024)
print("received from client", option)
serverSocket.close()
这个代码看起来不错。它正在工作 由于端口未打开,或者有2个通道为该端口打开,因此在客户端中出现ConnectionRejected错误。仅当服务器启动时,端口才会打开以进行侦听 检查“netstat-anp | findstr”:9001” 如果有已打开的端口,则选择另一个端口或终止该端口 记住:
Server is up and running.
received from client b'test'
客户:
Enter the voter name: test
Name sent to server. test
是否过早关闭客户端套接字?也许服务器应该发送一个响应,而客户端则等待它。我怀疑情况是否如此。客户端在clientSocket.connect((“131.100.39.41”,serverPort))之后没有打印任何内容。“连接被拒绝”表示启动客户端时服务器没有运行。您忘记关闭服务器中已接受的套接字。这是从空闲复制和粘贴的真实代码。客户端上的所有内容一直运行到:clientSocket.connect((“131.100.39.41”,serverPort))。我在运行服务器和客户端时没有收到任何错误。但是您需要按顺序运行它们,并且还需要确保客户端正在连接到服务器的IP地址。注意,“客户端不执行任何操作”与“客户端已拒绝连接”不同。“拒绝连接”表示在该IP:端口上没有任何内容正在侦听。这并不意味着该端口没有打开,“为该端口打开2个通道”毫无意义。谢谢@roshan ok。我将套接字更改为127.0.0.1,它现在可以工作了。但这又有什么不同呢?请参考:但是,您的代码中没有任何问题。我相信这只是您执行的顺序。[先是服务器,然后是客户端]。从您的评论来看,您似乎有ConnectionRefusedError。根据我的经验,当有两个频道在同一端口下监听时,我收到了这个消息。当您使用重用地址且前一个连接未正确关闭时,通常会出现此问题