如何在Java中侦听IP和端口?使用ServerSocket?

时间:2014-03-20 10:45:40

标签: java sockets tcp client-server serversocket

我正在用Java创建一个客户端/服务器聊天(多线程)应用程序。

我想听一下特定端口和IP的客户端。

当我这样做时:

ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept();      // accept connection

// more code 

这是否意味着我正在收听的IP是127.0.0.1?即localhost

从ServerSocket对象的构造函数看,我们有3种类型的构造函数:

public ServerSocket(int port) throws IOException
public ServerSocket(int port, int backlog) throws IOException
public ServerSocket(int port, int backlog, InetAddress bindAddr)  throws IOException

如果我想从 OTHER IP地址获取客户

,我应该使用什么构造函数?

这一个:

public ServerSocket(int port) throws IOException

或者这个:

public ServerSocket(int port, int backlog, InetAddress bindAddr)  throws IOException

非常感谢

2 个答案:

答案 0 :(得分:1)

  

这意味着我正在收听的IP是127.0.0.1吗?即localhost?

没有。这意味着您正在侦听主机的所有IP地址。

  

如果我想从其他IP地址获取客户端,我应该使用什么构造函数?

这一个。

答案 1 :(得分:-1)

InetAddress inetAddress = InetAddress.getByName("192.168.1.1");
int port =8081;
serverSocket = new ServerSocket(port,5,inetAddress);

你是说这个吗?愿它有用吗? 第二个论点意味着 - 请求传入连接队列的最大长度(来自jdc)。