![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Всем привет!
Дело в том, что мне надо написать клиента, работающего по протоколу TCP. Вернее переписать программу сделанную на C++ Builder. В Билдере был компонент ClientSocket, здесь насколько я поняла использутся TcpClient. Как подключиться я поняла как, но вот не поняла как получать данные. В Билдере было событие OnRead, т.е. когда приходили пакеты от сервера срабатывало это событие и дальше можно было получить пришедшие данные и работать с ними. В VS я этого не нашла. Конечно есть примеры в MSDN, но мне почему достаточно сложно в этом разобраться и потом, как читать данные, нужно заводить таймер? И в таймере вызывать read?
Что это за процедура: static void Connect(String server, String message) ? Может у кого то есть уже готовая программка небольшая, которую можно посмотреть в качестве примера? |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 3 Всего: 32 |
Тебе нужно использовать классы TcpListener и TcpClient.
Пример здесь: http://www.rsdn.ru/article/dotnet/dotnetchat.xml#EQEAC -------------------- I don't need a reason being who I am... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Сколько не пробую разных примеров и из ссылки и из MSDN не получается у меня прочесть то, что приходит с сервера. На сервер данные отправляются, а вот считать в клиенте что сервер ответил не могу. Гляньте код:
или может надо ещё tcpListener подключить, чтоб он прослушывал порт? |
|||
|
||||
| tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
Извини, а почему у тебя запись и чтение не в цикле? После
сразу идет
Как может networkStream стать CanRead, когда он даже еще не начал передавать? И сразу вываливаешься из Main, astalavista, типа Так нельзя Нужно как минимум сделать в Main
тогда и будет клиент крутиться то на прием, то на передачу. А еще лучше исп. не networkStream.Read, networkStream.Write, а асинхронные их варианты, да с callback-ами. Или отдельные потоки на запись и чтение. Но главное, не вываливаться из Main. P.S. Немного погорячился, Read будет держать поток пока не передаст. Но все равно не факт, что условия на прием успеют выполнится. Так что все остальное - в силе. Это сообщение отредактировал(а) tol05 - 4.5.2007, 10:35 -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
tol05, потому что раньше я работала с Билдером, а с этим только-только начала знакомиться. И программу мне надо переделать на VS, C#.
Я понимаю, что где-то неправильно, но где именно - нет. А вообще, честно говоря, не совсем понимаю как это будет всё работать. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Aline, ну tol05 в принципе написал как оно должно работать.
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |