java - Python Server/Java客户端“连接被拒绝:连接”

标签 java python client-server serversocket

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

工作时出现问题


客户端无法创建“套接字”实例。
奇怪的是(在使用Python的服务器中)

在python中使用'socket'类不会引起问题,
但是在python中使用'SocketServer.TCPServer'类会导致问题


这是我的环境。


服务器:Python
客户端:Java /许多用户将尝试连接。


服务器代码(使用Python):


SooMain.py

如果name ==“ main”:

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)

最佳答案

问题可能是您的服务未在该端口上运行,或者可能是某个其他应用程序已经在使用该服务,因为...

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


检查以下内容。


您尝试连接的主机名和端口正确
服务器端正确监听
没有防火墙阻止连接

关于java - Python Server/Java客户端“连接被拒绝:连接”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614143/

相关文章:

java - 隐藏查询字符串以在 URL : URL Rewriting 中显示

java - 从 C 代码创建 JAVA 类

python - Python中的JSON输出排序

python - 如何在数据库中存储应用引擎图像对象?

java - 如何从客户端定期向服务器发送数据

java - Apache 米娜异常

javascript - Pusher:如何获取 Pusher 中的私有(private) channel 订阅数?

Java 和 Silverlight 永远在一起

python - 如何在Matlab或Python中移动由零内切的矩形数组?

android - 如何使用 TCP 套接字传输位图