簡體   English   中英

Python Server / Java客戶端“連接被拒絕:連接”

[英]Python Server / Java Client “Connection refused: connect”

我正在使用TCP套接字進行通信。

工作時出現問題

  • 客戶端無法創建“套接字”實例。
  • 奇怪的是(在使用Python的服務器中)

    在python中使用'socket'類不會導致問題,但是在python中使用'SocketServer.TCPServer'類會導致問題

這是我的環境。

  • 服務器:Python
  • 客戶端:Java /許多用戶將嘗試連接。

服務器代碼(使用Python):

  1. SooMain.py

    如果name ==“ main ”:

     server = SooServer('localhost', PORT_DEBUG, SooRequestHandler) server.serve_forever() 
  2. SooServer.py

     class SooServer(SocketServer.TCPServer): "This is Server For Project201201" def __init__(self, host='localhost', port=PORT_DEBUG, handler=SooRequestHandler): #SocketServer.ThreadingTCPServer.__init__(self, (host, port), handler) SocketServer.TCPServer.__init__(self, (host, port), handler) print "SooServer <State> __init__" self.abort=0 self.timeout=10 def shutdown(self): SocketServer.ThreadingTCPServer.shutdown(self) print "SooServer <State> shutdown" 

客戶端代碼(使用Java):

  1. TestJava.java

     public class TestJava { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub try { String[] aStrData = { "Test", "Test" }; InetAddress m_oInetAddr = InetAddress.getByName(DEBUG_ADDR); Socket m_oSocket = new Socket(m_oInetAddr, DEBUG_PORT); //This Line Makes Exception!!!!! PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(m_oSocket.getOutputStream())), true); int nNumData = aStrData.length; out.println(Integer.toString(nNumData)); for (int i=0 ; i<nNumData ; i++) { out.println(aStrData[i]); } } catch (Exception e) { e.printStackTrace(); } } } 

錯誤代碼(使用Java):

Releated Line : Socket m_oSocket = new Socket(m_oInetAddr, DEBUG_PORT);


java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:241)
    at TestJava.main(TestJava.java:51)

問題可能是您的服務未在該端口上運行,或者可能是某個其他應用程序已經在使用該服務,因為...

This exception usually means that there is no service listening to
the port you are attempting to connect to.

檢查以下內容。

  • 您嘗試連接的主機名和端口正確
  • 服務器端正確監聽
  • 沒有防火牆阻止連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM