1
我正在使用TCP套接字進行通信。Python服務器/ Java客戶端「連接被拒絕:連接」
工作時,一個問題出現了
- 客戶端不能讓 '插座' 的實例。
奇怪的一點是,(在使用Python服務器)
使用Python中的 '窩' 類不會引起問題, 但是在Python事業問題使用 'SocketServer.TCPServer' 類
這是我的環境。
- 服務器:Python的
- 客戶:的Java /很多用戶會嘗試連接。
服務器代碼(使用Python):
SooMain.py
如果名 == 「主要」:
server = SooServer('localhost', PORT_DEBUG, SooRequestHandler) server.serve_forever()
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):
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)
我的服務器運行。 1.因爲在Ubuntu上使用「netstat -ntlp」Commnd時,我可以使用'PORT_DEBUG'找到服務 2.因爲使用客戶端測試(這是由Phython編寫的),客戶端正常運行 – Lyan
我想這個問題是相關的到由「SocketServer.TCPServer」實例製作的「套接字」實例。 我很困惑...幫助我。 – Lyan
可能會被其他應用程序使用。可能這會幫助你http://www.wireshark.org/ –