2011-08-12 131 views
0

我正在构建一个简单的客户端/服务器代码,并且我不断收到此错误。我不明白为什么(我想要习惯Python)。这里是我的代码:错误:[Errno 10061]由于目标机器主动拒绝,无法建立连接

服务器代码

import socket 
from socket import* 
from time import ctime 

HOST = '' 
PORT = 21567 
BUFSIZ = 1024 
ADDR =(HOST, PORT) 

tcpsersock = socket(AF_INET, SOCK_STREAM) 
tcpsersock.bind(ADDR) 
tcpsersock.listen(5) 

while True: 
    print("waiting for connection...") 
    tcpclisock, addr = tcpsersock.accpet() 
    print("...Connected from: "),addr 

    while True: 
     data = tcpclisock.recv(BUFSIZ) 
     if not data: 
      break 
     tcpclisock.send('[%s] %s' %(ctime(), data)) 

    tcpclisock.close() 
tcpsersock.close() 

客户端代码

import socket 
from socket import* 
from time import ctime 

HOST = 'localhost' 
PORT = 21567 
BUFSIZ = 1024 
ADDR = (HOST, PORT) 

tcpclisock = socket(AF_INET, SOCK_STREAM) 
tcpclisock.connect(ADDR) 

while True: 
    data = raw_input('> ') 
    if not data: 
     break 
    tcpclisock.send(data) 
    data = tcpclisock.recv(BUFSIZ) 
    if not data: 
     break 
    print data 

tcpclisock.close() 

我得到这个错误:

error: [Errno 10061] No connection could be made because the target machine actively refused it 
+1

哎,你还是写'Accpet头()的''而不是接受()'! – glglgl

+0

我得到'AttributeError:'套接字'对象没有属性'accpet''从你的代码。 – Tshepang

+0

修复了这个问题,我刚才写了一个问题。有关于防火墙问题的建议,但是我关闭了所有的安全程序 – Eyuel

回答

0

大概没有哪个服务器进程在本地运行(由于accpet()?)

0

这表明远程机器已收到您的连接请求,并发回拒绝(RST数据包)。我不认为这是远程机器的情况,只是没有在该端口上监听进程(但我可能是错的!)。

这听起来像是防火墙问题。它可能是远程计算机上的防火墙,或者是网络中的过滤器,或者也可能是本地计算机上的防火墙 - 您是否在本地运行任何类型的安全软件?

+0

是的,我正在运行诺顿,并有Windows防火墙 – Eyuel

+1

这正是在该端口上没有进程侦听时发生的情况。 – hamstergene

+0

我转过两个关闭btw – Eyuel

0

第一次运行该服务器脚本 - 它开始监听 然后打开客户端.. 或 - 尝试更改端口 错误只是表示“没有人听”

0

试试这个:

tcpclisock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

这几乎是直接从文档页面插座,您可以在这里找到socket

相关问题