Работа с сетью через Streamы

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Работа с сетью через Streamы

Сообщение Tin » 18.02.2008 (Пн) 12:27

Пишу программку клиент-сервер...
Для написания серверной части взял стандартынй МСДНовский пример по работе с TCP. Сделал, что каждый подключенный клиент обслуживается в отдельном потоке. Так вот стокнулся с такой проблемой - в МСДНовском примере, данные, которые получает сервер, он отправляется назад тому же клиенту. Так вот мне нужно любому из подключенных клиентов что-то отправить, но поток каждого клиента у меня висит, так как работает комманда ожидания данных:


i = stream.Read(bytes, 0, bytes.Length)

Вопросы
1. как ее прервать и отправить данные клиенту
2. будут ли потеряны данные, если в этот момент что-то начнет посылать?
3. другие варианты решения проблемы...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 18.02.2008 (Пн) 16:57

1 тайм аут
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 19.02.2008 (Вт) 6:34

Выдается странная ошибка:
Unable to read data from the transport connection: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.

Код: Выделить всё
REM Эта комманда ждет получения нового сообщения
                    stream.ReadTimeout = 100
                    Debug.Print("time out 100")
                    i = stream.Read(bytes, 0, bytes.Length)
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 20.02.2008 (Ср) 12:54

Tin писал(а):Выдается странная ошибка:
Unable to read data from the transport connection: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Перехватите ошибку и обработайте. Тогда это уже не баг будет, а фича :)
В культурной столице проститутки берут книгами...


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList