与套接字连接会产生ConnectionRefusedError

时间:2016-11-24 03:33:57

标签: python python-3.x sockets

我刚开始学习Python中的Socket库。我正在学习一个教程,但在最初的一个例子中,当我尝试运行它时会出现错误。

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.

s.connect((host, port))
print(s.recv(1024))
s.close

起初我是手工编写的,但是在经过多次审核后收到错误消息后,我直接将文本复制到Python中并运行它。但由于某种原因,我仍然得到这个错误。

Traceback (most recent call last):
  File "C:\Users\elikerr\Documents\socketFirstServer.py", line 7, in <module>
    s.connect((host, port))
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

有人可以详细说明出了什么问题。 这是我跟随的tutorial。 我已经检查了Stack Exchange上的一些答案,但是他们似乎都没有回答我的问题,或者,如果他们这样做,我对套接字知之甚少,不知道我在寻找什么。

1 个答案:

答案 0 :(得分:1)

由于您只发布了客户端代码,我将假设您在设置服务器之前编写了客户端。

您需要将以下代码放在文件(server.py)中并运行它。

run

现在验证服务器是否正在运行:

#!/usr/bin/python           # This is server.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.
s.bind((host, port))        # Bind to the port

s.listen(5)                 # Now wait for client connection.
while True:
   c, addr = s.accept()     # Establish connection with client.
   print 'Got connection from', addr
   c.send(b'Thank you for connecting')   # Send bytes
   c.close()                # Close the connection

现在使用您发布的确切代码,一切都应该正常工作。