2015-12-14 26 views
2

我已經得到[Errno 10048],那麼如果我解決這個問題,我會得到[Errno 10013],如果我解決了這個問題,我會得到[Errno 10053],如果我解決了這個問題,我會再次獲得[Errno 10048] 。我的代碼有什麼問題?爲什麼我的套接字不工作?

這裏的服務器:

#!/usr/bin/env python 

import socket 

host = '' 
port = 65535 
backlog = 5 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
s.bind((host,port)) 
s.listen(backlog) 
while 1: 
    client, address = s.accept() 
    data = client.recv(size) 
    if data: 
     client.send(data) 
    client.close() 

這是我的客戶:

#!/usr/bin/env python 

import socket 

host = 'localhost' 
port = 65535 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
while True: 
    txt = raw_input('') 
    s.send(txt) 

什麼是錯我的代碼?

+0

因爲客戶端套接字未連接。請參閱文檔中的[示例](https://docs.python.org/2/library/socket.html#example)。 – Jasper

回答

1

您的客戶端永遠不會連接到服務器(請注意,hostport變量未使用)。由於服務器在每次回顯後關閉連接,我通過在每次用戶輸入後重新創建連接來修復客戶端:

import socket 

host = 'localhost' 
port = 65535 
size = 1024 
while True: 
    txt = raw_input('') 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.connect((host, port)) 
    s.send(txt) 
    r = s.recv(size) 
    print r 
    s.close() 
+0

這沒有奏效。對不起,我花了這麼長時間,但現在我得到一個新的錯誤。 [Errno 10054]。試試別的,因爲這對我沒有用。儘管如此,謝謝你的努力。 –