Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 59cef04

Browse files
Update SocketServerRunner.java
1 parent a1b5f74 commit 59cef04

File tree

1 file changed

+22
-40
lines changed

1 file changed

+22
-40
lines changed

‎SocketClasses/src/TCP_Sockets/SocketServer/SocketServerRunner.java‎

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,74 +9,56 @@
99
public class SocketServerRunner {
1010
public static void main(String[] args) throws IOException {
1111
/*
12-
1. IP адрес машины на который развернут наш сервер
13-
и будет адресом сервера (в нашем случай мы обратимся
14-
с нашего клиента, сами к себе, поэтому это будет
15-
127.0.0.1), если же мы будем обращаться с другой
16-
(или) к другой машине то в настройках создаваемого
17-
Socket - а клиента кроме TCP порта нужно указывать
18-
IP сервера. В случае TCPSockets.SocketServer - а достаточно TCP
19-
порта (у нас это 7777)
12+
1. IP адрес машины на который развернут наш сервер и будет адресом сервера (в нашем случай мы обратимся с нашего клиента, сами к себе,
13+
поэтому это будет 127.0.0.1), если же мы будем обращаться с другой (или) к другой машине то в настройках создаваемого Socket - а клиента
14+
кроме TCP порта нужно указывать IP сервера. В случае TCPSockets.SocketServer - а достаточно TCP порта (у нас это 7777)
2015
*/
16+
2117
ServerSocket myServerSocket = new ServerSocket(7777);
18+
2219
/*
23-
2. Наш ServerSocket принимает потоки ввода-вывода, как и
24-
обычный Socket. Чтобы наш сервер принял данные, мы применяем
25-
его блокирующий метод *.accept(), т.е. программа будет ждать
26-
пока на данный открытый Socket не придет какое-либо
27-
сообщение из вне.
20+
2. Наш ServerSocket принимает потоки ввода-вывода, как и обычный Socket. Чтобы наш сервер принял данные, мы применяем его блокирующий метод
21+
*.accept(), т.е. программа будет ждать пока на данный открытый Socket не придет какое-либо сообщение из вне.
2822
29-
!!!
30-
Это означает, что наш сервер не может принять, более
31-
чем одно соединение, и для того, чтобы это было возможно
32-
организуется многопоточность.
33-
!!!
23+
!!! Это означает, что наш сервер не может принять, более чем одно соединение, и для того, чтобы это было возможно организуется многопоточность !!!
3424
*/
25+
3526
Socket myOuterConnectionSocket = myServerSocket.accept();
36-
/*
37-
3. Как и в случае с обычным Socket клиентом нас сервер
38-
тоже что-то принимает и что-то отправляет, а значит нам
39-
нужны входящие и исходящие потоки.
40-
*/
27+
28+
/* 3. Как и в случае с обычным Socket клиентом нас сервер тоже что-то принимает и что-то отправляет, а значит нам нужны входящие и исходящие потоки. */
29+
4130
DataOutputStream serverOutputStream =
4231
new DataOutputStream(myOuterConnectionSocket.getOutputStream());
4332
DataInputStream serverInputStream =
4433
new DataInputStream(myOuterConnectionSocket.getInputStream());
34+
4535
/*
46-
4. Выведем на экран сообщение от нашего клиента или
47-
запрос - request (полученные через InputStream). И
48-
пошлем нашему клиенту сообщение от сервера или ответ
49-
- response (отправленные через OutputStream).
36+
4. Выведем на экран сообщение от нашего клиента или запрос - request (полученные через InputStream). И пошлем нашему клиенту сообщение от сервера или
37+
ответ - response (отправленные через OutputStream).
5038
*/
39+
5140
System.out.println("Client request: " + serverInputStream.readUTF());
5241
serverOutputStream.writeUTF("Hello from server!!!");
5342

54-
/*
55-
5. Закрываем все потоки и каналы принудительно. В данном
56-
примере мы не использовали try-with-resources, как в
57-
Socket - клиенте.
58-
*/
43+
/* 5. Закрываем все потоки и каналы принудительно. В данном примере мы не использовали try-with-resources, как в Socket - клиенте. */
44+
5945
myServerSocket.close();
6046
myOuterConnectionSocket.close();
6147
serverOutputStream.close();
6248
serverInputStream.close();
49+
6350
/*
64-
6. Для проверки работоспособности нашего клиент-серверного
65-
соединения, мы первым запускаем наш сервер, который ожидает
66-
внешнего запроса.
51+
6. Для проверки работоспособности нашего клиент-серверного соединения, мы первым запускаем наш сервер, который ожидает внешнего запроса.
6752
68-
Далее, мы запускаем наш клиент, который шлет нашему серверу
69-
сообщение: Hello my first SERVER!!!
53+
Далее, мы запускаем наш клиент, который шлет нашему серверу сообщение: Hello my first SERVER!!!
7054
71-
Сервер в свою очередь получив сообщение из вне отправляет
72-
ответ: Hello from server!!!
55+
Сервер в свою очередь получив сообщение из вне отправляет ответ: Hello from server!!!
7356
7457
Таким образом работает протокол HTTP:
7558
1. Open Connection
7659
2. Send Request
7760
3. Receive Response
7861
4. Close Connection
7962
*/
80-
8163
}
8264
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /