java tutorial - Руководство Программирование Java Socket - учебник java - java programming - учиться java - java basics - java for beginners
1- Что такое Socket?
На стороне сервера (server-side):
- Обычно сервер работающий на определенном компьютере, имеет серверный сокет (Server Socket), привязанный к определенному номеру порта (Port number). Серверные программы (Server program) просто ждут, слушая серверный сокет (Server Socket) для клиента, чтобы выполнить запрос соединения.
На стороне клиента (client-side):
- Клиент знает имя машины, на которой работает сервер (server), и номер порта, на котором сервер прослушивает. Чтобы сделать запрос на соединение, клиент пытается встретиться с сервером на компьютере и в порту сервера. Клиент также должен идентифицировать себя с сервером, чтобы он связался с локальным портом, который будет использоваться во время этого соединения. Обычно это назначается операционной системой.
java - джава - учиться java - учебник java -
сокет сервера Java
- примеры java - java-программы
- Общая иллюстрация:
java - джава - учиться java - учебник java -
программы Java сервера сокета
- примеры java - java-программы
- Если все пройдет хорошо, серверная программа (server program) примет соединение клиента. После принятия сервер получает новый сокет, привязанный к тому же локальному порту, а также его удаленная конечная точка (remote endpoint) является адресом и портом клиента. Он создал новый сокет, чтобы заботиться о клиента, который только что принял соединение, и мог продолжать прослушивать исходный сокет (ServerSocket) для других запросов на подключение.
java - джава - учиться java - учебник java -
подключение сокета сервера Java
- примеры java - java-программы
- На стороне клиента, если соединение принято, сокет успешно создается, и клиент может использовать сокет для связи с серверной программой. Теперь клиент и сервер могут взаимодействовать, записывая или читая их сокеты (Socket).
java - джава - учиться java - учебник java -
сокет клиента
- примеры java - java-программы
- Данные, записанные в выходной поток на Socket клиента, будут поступать на входной поток Socket на сервере. И наоборот, данные, записываемые в выходной поток на Socket на сервере, будут передаваться в входной поток Socket клиента.
2- Простой пример с Socket
SimpleServerProgram.java
SimpleClientDemo.java
Запуск примера:
- Для начала вам нужно запустить класс SimpleServerProgram:
java - джава - учиться java - учебник java -
Демонстрация простого сервера
- примеры java - java-программы
- Затем запустить класс SimpleClientDemo.
java - джава - учиться java - учебник java -
простой клиент демо
- примеры java - java-программы
3- Пример Socket + Thread
- Обычно создается соединение между серверной программой (Server) и 1 клиентом, вы должны позволить им говорить друг с другом в потоке (Thread), поэтому каждый раз при создании нового соединения, создается ноый поток.