【发布时间】:2014-03-20 10:45:39
【问题描述】:
我正在用 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
?
非常感谢
【问题讨论】:
-
@fge:当我使用第一个时,是否意味着我正在收听的 IP 是 127.0.0.1 ?即本地主机?
-
呃,不,对不起,我弄错了;前两种形式将绑定到 0.0.0.0 和 ::0;即所有个本地接口,包括127.0.0.1。所以你真的应该使用第三种形式。
标签: java sockets tcp client-server serversocket