Как проверить статус сокета?

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

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

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Как проверить статус сокета?

Сообщение Snussi » 21.01.2005 (Пт) 10:04

Код:
Код: Выделить всё
        Dim HTML As System.Net.WebRequest = System.Net.WebRequest.Create(URL)

        HTML.Method = "POST"
        Dim PostData As String = "&HandTrade=1"

        Dim encoding As New System.Text.ASCIIEncoding
        Dim byte1 As Byte() = encoding.GetBytes(PostData)

        HTML.ContentType = "application/x-www-form-urlencoded"
        HTML.ContentLength = PostData.Length

        Dim newStream As System.IO.Stream
        Try
            newStream = HTML.GetRequestStream()
        Catch ex As Exception
            GetWebResponse = -1 ' Признак, что ошибка сервера
            Exit Function
        End Try

        newStream.Write(byte1, 0, byte1.Length)


Итак, на некоторых компьютерах все работает ОК а на других (в частности, на КПК) последняя строка вызывает следующую ошибку:

An unhandled exception of type 'System.Net.Sockets.SocketException' occurred in System.dll

Additional information: A blocking operation is currently executing

Насколько я понимаю, связано это с тем, что сокет "не до конца открылся" на момент newStream.Write.

Как отследить State сокета?

Цель сего мероприятия - закинуть в форму данные методом POST и получить в String ответ сервера (страницу). К сожалению, не могу использовать WebClient, т.к. его нету в VB.Net for Smart Devices.

Заранее спасибо!

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 21.01.2005 (Пт) 15:08

Опять же нашел ответ :)

8.12. Why do I get a socket error using SSL to communicate with a server via the WebRequest namespace?

There is a known issue in the .NET Compact Framework. You can work around this by setting HttpWebRequest.AllowStreamWriteBuffering to True and commenting out your setting of the ContentLength.


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

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

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

    TopList