0 0

在局域网使用本机ip(192.168.189.188)使用ServerSocket创建Socket服务关闭时出错5

修改tomcat中的伪代码如下在局域网使用本机ip(192.168.189.188)使用ServerSocket创建Socket服务代码如下:
 ServerSocket serverSocket = null;
        try {
            serverSocket =
                new ServerSocket(port, 1,//127.0.0.1
                                 InetAddress.getByName("192.168.189.188"));
        } catch (IOException e) {
            System.err.println("StandardServer.await: create[" + port
                               + "]: " + e);
            e.printStackTrace();
            System.exit(1);
        }
while (true) {
            Socket socket = null;
            InputStream stream = null;
            try {
                socket = serverSocket.accept();
                socket.setSoTimeout(10 * 1000);  // Ten seconds
                stream = socket.getInputStream();
            } catch (AccessControlException ace) {
              continue;
            } catch (IOException e) {
              System.exit(1);
            }
......
}//end of while(true)
 // Close the server socket and return
        try {
            serverSocket.close();
        } catch (IOException e) {
            ;
        }

在另一个类中有如下方法:IP地址使用 localhost 或者 127.0.0.1 没有问题
 int port = 8005;
    try {
      Socket socket = new Socket("127.0.0.1", port);
      OutputStream stream = socket.getOutputStream();
      String shutdown = "SHUTDOWN";
      for (int i = 0; i < shutdown.length(); i++)
        stream.write(shutdown.charAt(i));
      stream.flush();
      stream.close();
      socket.close();
      System.out.println("The server was successfully shut down.");
    }
    catch (IOException e) {
      System.out.println("Error. The server has not been started."+e.toString());
    }

如果将上述IP地址更换为:192.168.189.188 调用该方法就会出现如下错误内容:
The server has not been started.java.net.ConnectException: Connection refused: connect

希望有遇到类似问题的朋友帮忙解答谢谢!
2014年5月28日 18:29

1个答案 按时间排序 按投票排序

0 0

本机是不是加了防火墙?
把服务端起来,用telnet 192.168.189.188 port去连下。
如果连不上应该就是防火墙了。
如果能连上,那么TM就出鬼了。

2014年5月28日 18:58

相关推荐

    android基于socket两个手机之间进行通信

    1. 创建Socket对象,指定服务器的IP和端口号,如`new Socket("192.168.1.100", 8888)`。 2. 同样,获取Socket的输入/输出流,用于数据交换。 3. 完成通信后,关闭Socket。 在局域网环境下,两台设备必须连接到同一...

    java编写Socket扫描程序,识别局域网内活跃的主机

    在本场景中,我们利用Socket来构建一个局域网内的主机扫描程序,旨在识别那些活跃并运行Windows系统的设备。活跃主机的判断依据是它们是否能够响应TCP 135号端口的连接请求,因为这个端口通常是Windows系统中RPC...

    scoket局域网通信.zip

    在局域网通信中,服务器的IP地址通常是固定的,例如"192.168.1.100",而端口号是自定义的,通常选择一个大于1024且未被其他服务占用的端口。客户端可以通过输入服务器的IP和端口来建立连接。 在实际应用中,Socket...

    Socket通信.zip

    项目中,客户端需要输入服务器的IP地址,这通常是局域网内其他设备的IP,例如192.168.x.x的形式。 3. **Android Studio**:Android Studio是Google提供的官方Android应用程序开发集成开发环境(IDE),支持各种...

    Android在wifi下手机与电脑的socket通信.7z

    String ipAddress = "192.168.1.100"; // 电脑的IP地址 int port = 8888; // 与服务器端一致的端口号 Socket socket = new Socket(ipAddress, port); ``` 3. **数据交换**:连接建立后,可以通过Socket的输入流和...

    C# 局域网广播例子

    在IP协议中,特定的IP地址192.168.0.255(或根据子网掩码计算出的广播地址)用于进行这种广播。 在C#中,我们可以使用System.Net命名空间下的Socket类来实现网络通信。以下是一些关键知识点: 1. **创建Socket对象...

    java局域网聊天,swing,socket,线程

    JTextField ip = new JTextField("192.168.18.222"); JTextField txt = new JTextField(); JButton btn = new JButton(""); private static mainWindow instance = null; public static mainWindow ...

    C# Socket网络通信

    clientSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.100"), 12345)); byte[] buffer = new byte[1024]; int receivedBytes = clientSocket.Receive(buffer); string message = Encoding.ASCII....

    Android基于socket通信

    Socket socket = new Socket("192.168.1.100", 8888); ``` 这里,"192.168.1.100"是服务器的IP,8888是服务器监听的端口。 2. **数据传输**: 一旦连接建立,我们可以通过Socket的`getOutputStream()`和`...

    net_work.zip

    Socket clientSocket = new Socket("192.168.1.100", 12345); ``` 3. **数据交换**:一旦连接建立,服务器和客户端都可以通过Socket的输入和输出流进行数据传输。例如,使用`PrintWriter`和`BufferedReader`进行...

    android在wifi下手机与电脑的socket通信

    Socket socket = new Socket("192.168.1.100", 12345); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int length = in.read(buffer); String message = new String(buffer, 0, ...

    局域网通讯

    IPEndPoint serverRemoteEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.100"), 12345); Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); ...

    delphi socket

    Delphi Socket编程是使用Delphi开发网络应用程序时的关键部分,特别是在构建客户端-服务器通信系统时。Socket接口在TCP/IP协议栈中提供了一种基础方法,允许应用程序通过Internet或局域网进行通信。以下是对"Delphi ...

    JAVA局域网聊天(TCP)

    - 局域网内的IP通常为私有IP,如192.168.x.x,不需要公网路由,可以直接通信。 - 聊天软件可能通过广播发现局域网内的其他用户,或者由用户手动输入对方IP进行连接。 4. **聊天功能实现**: - 数据传输格式:...

    java局域网文件传

    - **InetAddress**:`java.net.InetAddress`用于处理IP地址和主机名,它在文件传输中用于获取或指定IP地址,如`l22`标签提示的"请输入目的地IP地址(192.168.*.*)"。 2. **Java GUI设计**: - **AWT组件**:代码...

    Socket简单代码

    Socket socket = new Socket("192.168.1.100", 12345); // 获取OutputStream,用于向服务器发送数据 OutputStream outputStream = socket.getOutputStream(); PrintWriter writer = new PrintWriter...

    基于c#的c/s模式tcp通讯实例

    IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.100"), 12345); // 连接服务器 clientSocket.Connect(serverEndPoint); ``` 服务器端(Server)同样需要创建Socket对象,但其角色是监听...

    局域網內廣播消息的程序

    3. **发送广播**:使用Socket的sendto()函数(C/C++)或Socket的send()方法(Java)将数据包发送到广播地址和预设的端口号(例如,192.168.1.255:5000)。 4. **服务端监听**:服务端创建ServerSocket,绑定到预期...

    C# ,WinForm 多人聊天

    为了实现这一点,服务器需要监听本地IP地址(如`192.168.x.x`)的一个特定端口,而每个客户端则连接到这个地址和端口。 为了实现聊天功能,我们需要在WinForm中添加事件处理程序,如按钮点击事件来发送消息,文本框...

Global site tag (gtag.js) - Google Analytics