当前位置: 代码迷 >> J2SE >> Serversocket端口有关问题
  详细解决方案

Serversocket端口有关问题

热度:92   发布时间:2016-04-24 02:02:04.0
Serversocket端口问题
本机telnet服务已经起来了,默认是23端口,程序如下
报错端口冲突java.net.BindException: Address already in use: JVM_Bind
请问如何查和什么冲突,谢谢。

Java code
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class MockServer {    private ServerSocket socket;    private int port;    public MockServer(int port) {        this.port = port;    }    public void startServer() {        InputStream is = null;        try {            try {                socket = new ServerSocket(port);                // 建立服务器,端口号为port                Socket inSocket = socket.accept();                 // 检测端口直到与用户建立连接完成                System.out.println("与用户建立连接完成");                            OutputStream os = inSocket.getOutputStream();    // 打开输出流                is = inSocket.getInputStream();                    // 打开输入流                Scanner in = new Scanner(is);                PrintWriter pw = new PrintWriter(os, true);                // 往服务器发送数据                pw                        .println("<html><body>欢迎光临chelson的服务器,键入exit断开与服务器的连接</body><html>");                boolean exit = false;                // 等待客户端发送数据                while (!exit && in.hasNextLine()) {                    String input = in.nextLine();                    pw.println("您刚才输入的信息是" + input);        // 返回客户端数据                    if (input.trim().equals("exit"))            // 如果用户输入exit就终止服务器                        exit = true;                }            } catch (IOException e) {                e.printStackTrace();            } finally {                is.close();            }        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        MockServer server = new MockServer(23);        server.startServer();    }}


------解决方案--------------------
那你要么关掉本机telnet服务,要么搞一个不常见的端口号,一般用户自定义的端口号 > 1024
------解决方案--------------------
netstat -na 查看一下本机已经打开了哪些端口。。然后再看看你即将开的端口是否已经开启了。。。
------解决方案--------------------
同意楼上,
------解决方案--------------------
给你个建议,应用程序应使用大于 1024 的端口号。