2015-10-13 213 views
0

我试图用Python中的套接字连接两台计算机,我不知道为什么它不起作用。这些文件来自互联网,它为我编译,但没有任何结果。Python服务器客户端套接字

的server.py:

#!/usr/bin/python   

import socket    

s = socket.socket()  
host = '' 
port = 12345     
s.bind((host, port))   

s.listen(5)     
while True: 
    c, addr = s.accept()  
    print 'Got connection from', addr 
    c.send('Thank you for connecting') 
    c.close() 

和client.py:

#!/usr/bin/python   

import socket    

s = socket.socket()   
host = # here I put the ip of the server's laptop 
port = 12345     

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

有什么不对?

+0

这不起作用,因为代码中存在语法错误。无论如何,代码从哪里来?我在问,因为它适用于旧的Python 2,并且可能已经过时。 –

+0

http://www.tutorialspoint.com/python/python_networking.htm它来自这里。 – IleNea

+0

你期待什么_results_?顺便说一句,你可以尝试用'sendall'替换'send'。 – ForceBru

回答

1

您必须先运行服务器。然后运行客户端同时与服务器的IP(我使用本地主机,因为它在一台计算机上运行,​​也许你应该尝试,如果这样的话)。代码对我来说工作得很好,每次我运行客户端时,服务器都会打印一条消息。如果它不适合你,也许你的防火墙不会让你打开端口。

为了将来,请始终发布您看到的任何错误消息。

顺便说一句,是不是这个套接字的Python文档示例?

+0

我认为这比撰写答案更好。 OP没有告诉我们发生了什么事。这与文档中的简单示例非常接近。 – tdelaney

+0

我修复了所有的缩进问题。我使用了服务器的IP地址(我在两台计算机上运行),但仍然没有收到任何消息。但是,我仍然不确定“在运行客户端IP的同时,服务器“,那怎么样,如果我先运行服务器? – IleNea