Клиент-серверный чат по протоколу TCP/IP

  • 08 июня 2010 г.
  • 3420 Слова
Введение

Протокол TCP (протокол управления передачей) является одним из основных сетевых протоколов и предназначен для управления передачей данных в сетях TCP/IP.
Реализация TCP, как правило, встроена в ядро системы, хотя есть и реализации TCP в контексте приложения.
На этом протоколе гарантируется доставка пакетов, но не гарантируется время доставки. Главным отличием протокола TCPот UDP является то, что в TCP имеется проверка доставки пакетов (если пакет доставлен не был, то идёт повторная передача), однако при этом повышаются сроки доставки пакетов, а в UDP доставка пакетов не прослеживается, зато скорость заметно выше. TCP, как правило, очень удобно использовать для обмена мгновенным сообщениями, в то время как UDP обычно используется для отправки мультимедийныхпакетов.
В отличие от традиционной альтернативы - UDP, который может сразу же начать передачу пакетов, TCP устанавливает соединения, которые должны быть созданы перед передачей данных. TCP-соединение можно разделить на три стадии:
1. Установка соединения. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности. Сервер получает сегмент, запоминает номерпоследовательности и пытается создать сокет для обслуживания нового клиента. Если сервер получил запрос на соединение и отправил ответный запрос и получает подтверждение, то соединение установлено и идёт передача данных.
2. Передача данных. При обмене данными приёмник использует номер последовательности, содержащийся в получаемых сегментах, для восстановления их исходного порядка. Приёмникуведомляет передающую сторону о номере последовательности, до которой он успешно получил данные, включая его в поле "номер подтверждения". Все получаемые данные, относящиеся к промежутку подтверждённых последовательностей, игнорируются.
3. Завершение соединения. Клиент посылает серверу запрос на завершение соединения. Сервер посылает клиенту ответ, что соединение закрыто. После получения ответаклиент закрывает соединение и в подтверждение отправляет серверу, что соединение закрыто.
Протокол TCP используется на транспортном уровне модели OSI, где происходит прямая связь между конечными пунктами и надёжность переданных данных.
Этот уровень предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какиеданные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает.
Мой проект выполнен на языке высокого уровня C# и реализует передачу данных через сокеты по протоколу TCP.
Сокет - программный интерфейс для обеспечения обмена данными между процессами.Процессы при таком обмене могут исполняться как на одном компьютере, так и на нескольких машинах, связанных между собой сетью. Сокет представляет из себя конечную точку соединения.
Клиентские приложения используют только клиентские сокеты, а серверные - как клиентские, так и серверные сокеты.
Сокет означает комбинацию IP-адреса и номера порта (Например, 192.168.0.1:80).
Среди особенностеймоей программы можно отметить:
1. Хорошая обработка исключений, благодаря чему гарантируется стабильность работы без падения системы;
2. Красивый дизайн с интуитивно понятным интерфейсом;
3. Автоматическое определение вашего IP-адреса;
4. Минимум настроек (Достаточно ввести ваше имя и IP-адрес удалённого сервера);
5. Подробная история сообщений с выводом времени отправки;6. Сохранение истории сообщений в текстовый документ;
7. Многоязычность (поддерживаются русский и английский языки).
Программа состоит из трёх форм. Первая форма "Form1" является главной и используется для настройки подключения к серверу и работы чата. Вторая форма "Form2" необходима для просмотра всей истории сообщений в виде списка, первоначально сохранённой в файле...
tracking img