我目前正在使用Python使用套接字。無法在使用Python的Centos中正確運行套接字程序
擔任首發,我第一次嘗試複製這個(17.2.2. Example) tutorial
給出的例子,我把客戶端,並在兩個不同的機器(當然)
現在服務器的腳本,我想試試,如果它作品,但我有點失落。
我在想連續運行服務器程序,以便它將繼續接收客戶端程序發送的數據。然而,當我試圖運行的服務器程序,它給我這個錯誤
socket.error: (99, 'Cannot assign requested address')
,當我試圖運行客戶端程序,它不給我的錯誤,但是,它打印隨機數據,這是不同的從我很期待,因爲我把字符串「Hello World」,因此即時通訊期待它會接收並打印的「Hello World」
下面顯示的是服務器程序
# Echo server program
import socket
HOST = '192.168.104.112' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
conn.sendall(data)
conn.close()
和下面的一個是客戶程序
# Echo client program
import socket
HOST = '192.168.104.111' # The remote host
PORT = 50007 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)
假設在運行服務器程序的機器的IP是:192.168.104.111
,而客戶端程序爲:192.168.104.112
林真的不知道從哪裏得到的端口號所以我只是使用終端中的rpyc顯示的端口。我怎樣才能得到正確的端口號?
我知道我在這裏犯了很多錯誤。我只是不知道哪一部分。你能指出我所犯的錯誤以及如何糾正錯誤嗎?我如何運行這些程序?
順便說一句,我使用的是Centos。
該端口是否未被任何其他應用程序使用?這似乎是因爲您的服務器無法綁定到該端口,而客戶端可以連接(表示有人正在監聽該端口)。使用['netstat'](http://linux.die.net/man/8/netstat)等程序確保沒有其他程序正在使用該端口。 –