проблема с сокетами

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

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

Voffka
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 09.10.2005 (Вс) 12:56

проблема с сокетами

Сообщение Voffka » 09.10.2005 (Вс) 13:07

Народ подскажите пожалста) В своем приложении я юзаю сокеты прчием не TCPListener а вот атк:

Public Sub DataSend(ByVal k As Socket, ByVal dat_to_snd As String)
Dim msg As [Byte]() = System.Text.Encoding.ASCII.GetBytes(dat_to_snd)
Dim i As Int32 = k.Send(msg)
End Sub

Public Function DataReceive(ByVal k As Socket)
Dim z(131072) As [Byte], data As String
Dim i As Int32 = k.Receive(z)
data = System.Text.Encoding.ASCII.GetString(z)
frmConsole.txtConsole.SelectedText = data & vbCrLf
Return data
End Function

вприниципе все работает) жалуюсь я вот на что, когда я писал сетевые париложеняи в VB6 и юзал стандартный winsock то для получения данных атм было событие т.е. как только данные приходили сразу вызывалась процедура с обработкой, а тут приходицца делать так:

DataSend(Socket, ".GetMyInfo")
RecvData = DataReceive(Socket)

т.е. сначала я отправляю даныне потом принимаю, тюею присваиваю содержимое буфера переменной, а если данные придут не сразу или если вместо этих данных придут другие, которые предназначены для другог опотока т.е. программа сразу может запрашивать несколько значений с сервера, вообще данные приходят не всегда, иногда поступившие данные путаются и получается куча-мала) вопрос, как можно сделать атк ка в ВБ6 т.е. ждать события прием данных и потом зарускать прцоедуру )) напомню, там это так выглядит)

Private Sub Socket_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim Temp As String
Dim Temp2 As String
Dim Temp3 As String
Dim Temp4 As String
Dim Temp6 As Integer
Socket(Index).GetData ReceiveData
txtLog.SelText = ReceiveData & vbCrLf
'определение команды
If Word(ReceiveData, 1) = ".login" Then
... и так далее)

надеюсь вы сможете мне помочь)

Voffka
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 09.10.2005 (Вс) 12:56

Сообщение Voffka » 09.10.2005 (Вс) 13:09

сорри за очепятки, пишу вслепую а клаву пока знаю не очень)

Kulip@tor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 70
Зарегистрирован: 16.09.2004 (Чт) 20:15
Откуда: Israel

Сообщение Kulip@tor » 30.10.2005 (Вс) 23:43

блокируй потоки во время чтения/записи
SyncLock
или я чето не так понял


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

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

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

    TopList