2013-11-18 3 views
0

Я пытаюсь написать простое приложение чата Java в Server/Client.Что происходит, когда server.accept()

Я путаницу ниже метода в 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() возвращает что?

Любая помощь была бы потрясающей.

+0

Что такое 'сервер'? – Darkhogg

+0

Ну, покажите тип 'server', тогда мы можем указать, что возвращает метод' accept' (хотя это, вероятно, 'Socket'. – Matthias

+0

@HamedKamrava' server.accept() '- это блок, что означает вашу программу будет остановлен до тех пор, пока клиент не подключится. Только когда клиент подключится к вашему серверу, ваш код возобновит работу. –

ответ

1

Когда вы выполняете соединения между двумя системами, вам требуется сокет.

Розетка одной системы подключена к розетке другой системы. Оба эти разъема подключаются через поток ввода-вывода. вы можете писать в этот поток и читать из этого потока.

Одна система служит сервером, а другая система служит клиентом.

As гнездо представляет собой комбинацию портов №. и IP, чтобы сервер открыл свой порт no. и клиент пытается подключиться к IP-адресу сервера и порту нет.

Для подключения к горничной сервер принимает входящий сокет с использованием функции accept(). accept() функция возвращает локальный сокет, который подключен к другому разъему на клиенте ..

accept() ждет, пока сокет клиент не заключит.

+0

Это не означает, t возвращает «сокет клиентской системы». Он возвращает локальный сокет, который подключен к другому сокету на клиенте. – EJP

+0

@EJP благодарит за это утверждение. –

2

Предполагая, что переменная server является java.net.ServerSocket, тогда метод accept() возвращает объект java.net.Socket.

С возвращенного объекта Socket у вас есть доступ к InputStream и OutputStream для чтения и записи подключенному клиенту.

2

Ваша программа должна останавливаться, пока клиент не подключится. Вот что делает линия connection = server.accept();. Возвращаемый тип - это тип Socket.

Это «соединение» с вашим клиентом, с которого вы можете читать и писать.

Проверьте this и that сайт, чтобы узнать больше о сетевом программировании на Java.

Смежные вопросы