2015-10-13 214 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