Websocket
- протокол, построенный на верхних нормальных сокетах, основанных на протоколе TCP (ServerSocket
и Socket
). Websockets дают вам больше комфорта при программировании, потому что это помогает вам:
- Обрамление: TCP основан на потоке, веб-камеры позволяют отправлять пакеты. Вам не обязательно искать начало и конец вашего пакета.
- Закрытие рукопожатия: вы можете отправить сообщение о причине закрытия.
- Безопасность (в контексте браузера, не требуется в контексте консольного приложения)
- Вы также можете получить доступ к вашему серверу Websocket через API Webbrowser.
Если вы хотите работать вместе с существующими серверами/клиентами, использующими TCP, вам необходимо использовать ServerSockets. Websockets и ServerSockets несовместимы (преднамеренно, по соображениям безопасности). Поскольку у Websockets больше встроенных функций, производительность и пропускная способность не будут такими же хорошими, как raw TCP, но этот момент ничтожно мал.
Оба протокола могут использоваться с шифрованием, Websockets с использованием HTTPS-соединения (wss: //) и TCP с использованием TLS (SecureSocket
и SecureServerSocket
).
Для получения более подробной информации о Websockets см. RFC. RawDatagramSocket
позволяет использовать протокол UDP в дополнение к TCPS-серверам на основе TCP.
Ответ на этот похожий вопрос кажется довольно хорошим http://stackoverflow.com/questions/2681267 (ServerSocket == TCP-сокеты) –