Python socket 遇到錯誤 [Errno 10060] ?

我是根據socket文檔在伺服器端和客戶端分別寫了兩個腳本sevice.py和client.py。伺服器是採用的裝有centos6.6的虛擬機,客戶端是64位的win7的PC工作用電腦。

我的腳本是這樣的

伺服器端:

service.py

# -*- coding:utf-8 -*-
if __name__ == __main__:
import socket
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.bind((127.0.0.1,8001))
socket.listen(5)
while 1:
connection,address = socket.accept()
try:
connection.settimeout(5)
buf = connection.recv(1024)
if buf == 1:
connection.send(welcome to server!)
else:
connection.send(please go away !)
except socket.timeout:
print time out !
connection.close()

客戶端

client.py

# -*- coding:utf-8 -*-
if __name__ == __main__:
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((192.168.23.128,8001))
import time
time.sleep(2)
sock.send(1)
print sock.recv(1024)
sock.close()

運行後出現

Errno 10060百度了是連接超時,我的思路只能到這兒了。


Python 官方有一份 Python HOWTOs 文檔,介紹了一些常見的功能,其中就有 socket 編程相關的介紹:Socket Programming HOWTO。

在 serversocket bind 一個 address 的時候,推薦的寫法是:

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

serversocket.bind((socket.gethostname(), 8080))

# do something

we used socket.gethostname() so that the socket would be visible to the outside world. If we had useds.bind((localhost, 80)) or s.bind((127.0.0.1, 80)) we would still have a 「server」 socket, but one that was only visible within the same machine. s.bind((, 80)) specifies that the socket is reachable by any address the machine happens to have.

  • 僅限本機:「 localhost 」「 127.0.0.1 」(注意:本機通過區域網地址也不能訪問
  • 來者不拒:「空字元串」「 0.0.0.0 」


謝邀,

看了一下,題主你這不是對python不熟悉的問題,而是對127.0.0.1這個網路地址不太清晰的問題。

話說,這個127.0.0.1一般默認作為loopback地址,也就是迴環地址使用。如果不是使用linux的話,確實不太容易明白這個東東。因為windows就不給你顯示這東西。

詳細的看這個鏈接吧

localhost、127.0.0.1 和 本機IP 三者的區別? - 計算機網路


小技巧:

cmd-&>net helpmsg 錯誤編號

由於沒有用過py,所以不能幫助你........


client里

-sock.connect((192.168.23.128,8001))
+sock.connect((localhost,8001))


考慮能不能ping通。


先用現成的工具測測這樣子能不能聯通,再去調試代碼。


推薦閱讀:

Flask框架怎麼樣,比起Web.py有哪些不同?
Tornado 非同步讀寫文件的方法?
學完python之後去看《flask web開發-基於python的web應用開發實戰》為什麼看不懂?
用Python寫爬蟲,用什麼方式、框架比較好?
如何理解 CGI, WSGI?

TAG:Socket | Python框架 |