Другие языки программирования и технологии

как написать сетевое приложение на C#

нужно написать небольшую программу. например чат, сервер и несколько пользователей. Видел много исходников, но не мог найти мне нужного. Вообщем нужен чат, чтоб не только юзер-сервер, а юзер1-юзер2, и общий чат.
хотельсь ещё бы общатся не только по локальной сети, но и по интернету.
Aydar Abdunabi
Aydar Abdunabi
168
Сразу скажу - ваша задача чрезмерно велика если вы никогда подобного не делали.

Технически локальная сеть от интернета ничем не отличается. Всегда должен быть сервер и его клиенты. На сервер можно выходить и через NAT, и пусть он даже в Интернете на отдаленном хостинге - это сути не меняет.

Транспортный протокол пусть даже и будет везде ТСР, для Интернет-сервера дешевле будет аренда HTTP. Следовательно лучше либо всю технологию организовать через ASP . NET, либо сделать возможность выбора транспорта до сервера. В локальных сетях TCP, в интернете HTTP.

Cуществует только 2 протокола передачи данных - TCP и UDP.
Остальное (HTTP, FTP, SMTP, POP3, ..) лишь надстройки над TCP. Поэтому реализуя свою систему нужно за базу брать TCP, а не протокол уже переточенный под другие нужды.
Но учитывая распространенность HTTP, вы можете пользоваться и им. Заголовок игнорировать, а в тело сообщения в бинарном виде шуровать запакованные данные. Единственная проблема буде тов том что HTTP не поддерживает постоянно открытое состояние, и придется каждый раз подключаться заново передавая свой идентификатор сессии. Для ТСР это не нужно.

Можете начать мыслить так.
1) создать приложение ASP . NET, создать там HttpHandler а страницу назвать Service.ashx
2) создать приложение на C# и с него слать HTTP запросы к этой странице.
3) разработать набор общих типов данных, их превращение в byte [ ] и назад (сериализация / десериализация) .

Самое главное - предусмотреть собственное обучение, допускать возможность провала, делить задачу на части. Не получается сделать обмен - учиться его делать. Не получается создать красивые типы данных - ну пробовать разные варианты.
СМ
Серик Мухамбетов
10 716
Лучший ответ
В чем у вас вопрос? Как написать приложение для локалки или как заставить ее работать через енторнеты? Это немного разные вещи.
Хотабыч .
Хотабыч .
6 852
http: //pyha. ru/forum/topic/2945.0 вот, например