![]() |
|
|||||||||||||||||||||||||||||||||||||||||||
7 семестр:
6 семестр:
5 семестр:
4 семестр:
I семестр:
|
Сокеты и сокетные соединения.Передача данных по сети - сложный процесс, включающий в себя определение пути доставки данных, организацию взаимодействия, алгоритмы синхронизации, обработки сбойных ситуаций и т.п. Программное обслуживание такого процесса сложное. Для упрощения введено понятие сокета (гнезда), как конечной точки коммуникации. Сокет(гнездо, разъем) – это программная абстракция, используемая для представления “терминалов” соединений между двумя машинами. Каждый из сокетов определяется типом и ассоциированным с ним процессом. Реально для передачи организуются определенные дескрипторы TCP-соединения, т.н. гнезда (socket): гнездо сервера и гнездо клиента, которые в Internet домене включают в себя IP-адреса сервера и клиента и номера портов, через которые они взаимодействуют. Сервер, обычно, имеет закрепленный и постоянный во взаимодействии номер порта, а клиенту, обращающемуся по этому номеру для связи к серверу, назначается некоторый другой (эфемерный) номер порта после установления соединения с сервером на сеанс их взаимодействия и таким образом основной порт освобождается, для установления последующих связей (номер порта выбирается сервером из числа незанятых в диапазоне от 1024 до 65535). Сокеты для работы в сети можно создать 2-х типов: 1) Потоковые для TCP-соединения. TCP могут передавать даннные только между 2-мя приложениями, так как они предполагают наличие канала между этими приложениями. 2) Датаграммные. Для датаграмм не нужно создавать канал, данные посылаются приложению с использованием адреса, состоящего из сокета и номера порта. (В датаграммах не гарантируется доставка и корректность последовательности передачи пакетов) Для передачи датаграмм не нужны ни механизмы подтверждения связи, ни механизмы управления потоком данных. Для TCP-соединений в JAVA используется два класса сокетов: ServerSocket – класс используемый сервером, чтобы “слушать” входящие соединения и Socket - используемый клиентом для инициирования соединения.
|
|||||||||||||||||||||||||||||||||||||||||||
|