Я пишу TCP-чат-сервер (язык программирования не машет). Это школьный проект для моего племянника, поэтому он не будет выпущен, и все вопросы, которые я задаю, - это только для моих знаний :). , Некоторые из вещей, которые он будет поддерживать:Просьба предложить другие способы связи между сервером и клиентом
- чате между пользователями (DOH), он будет многопоточных
- посылают друг другу файлы
Я знаю, что я мог бы легко уйти все вещи выше если я иду с сериализацией и просто отправляю объекты с клиента на сервер и обратно. Но, если я это сделаю, он будет ограничен конкретным языком программирования (это означает, что клиенты, написанные на других языках программирования, не смогут десериализовать объекты). Каким образом можно было бы поддерживать другие клиенты, написанные на других языках?
Один из способов пойти, с головы до головы, будет идти в этом направлении: сервер & клиент связывается, отправив сообщения & кусков (вместо других имен). Вот что я имею в виду:
каждый раз, когда клиент/сервер хочет послать что-нибудь (текстовое сообщение или файл) будет первым отправить простое текстовое сообщение (перевод строки прекращается) с числом кусков он будет Отправить. Пример:
Команда 4,20,30,40,50
Где command
бы нечто вроде instant-message
или file
, 4 будет количество порций, которые будут посланы, 20 будут иметь размер в байты первого блока, 30 второго и т. д.
- после того, как сообщение было отправлено, клиент/сервер начнет отправлять куски (размеры указаны в отправленном сообщении).
Что вы думаете о реализации коммуникации клиент/сервер таким образом? Какие существуют лучшие варианты?
TCP/IP over Avian Carrier, согласно RFC 1149: http://www.rfc-editor.org/rfc/rfc1149.txt – Oded