server.accept()时发生了什么

时间:2013-11-18 09:38:56

标签: java sockets

我正在尝试在Server / Client中编写一个简单的Java聊天应用程序。

我在server.accept()

的下面方法中感到困惑
private void waitForConnection() throws IOException {
    showMessage("Waiting for someone to connect... \n");

    // `connection` is an instance of `java.net.Socket` 
    // `server` is an instance of `java.net.ServerSocket`
    connection = server.accept();
    showMessage("Now connected to " + connection.getInetAddress().getHostName());
}

请告诉我connection等于什么?

而且server.accept()还会返回什么?

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:2)

假设您的server变量是java.net.ServerSocket,则accept()方法会返回java.net.Socket个对象。

从返回的Socket对象中,您可以访问InputStreamOutputStream来读取和写入已连接的客户端。

答案 1 :(得分:2)

您的程序应暂停,直到客户端连接为止。这就是connection = server.accept();行的作用。返回类型也是Socket的类型。

这是与客户的“联系”,您可以阅读和写信。

检查thisthat网站,详细了解Java中的网络编程。

答案 2 :(得分:1)

当你在两个系统之间建立连接时,你需要一个套接字。

一个系统的套接字与另一个系统的套接字连接。这两个插座都通过I / O流连接。您可以写入此流并可以从此流中读取。

一个系统用作服务器,另一个系统用作客户端。

由于socket是端口号的组合。和IP所以服务器打开其端口号。和客户端尝试连接服务器的IP和端口号

对于要成为女仆的连接,服务器使用accept()功能接受传入套接字。 accept()函数返回一个本地套接字,该套接字连接到客户端的另一个套接字..

accept()等待客户端套接字到达。