Pokud to máte podle zdejšího článku, tak jako já pak jsem to řešil následovně: (asi jen to hlavní)
Sub Pripojit(ByVal at As System.IAsyncResult)
Try
tcp.EndConnect(at) ' dokončíme připojování
networkStream = tcp.GetStream() ' stream pro přenos dat
networkStream.BeginRead(Buffer, 0, BUFFER_SIZE, AddressOf CtiData, Nothing) ' začínáme asynchronně číst
mame_spojeni() ' jsme připojeni - odblokujeme tlačítko "Odpojit"
Catch e As ObjectDisposedException
' proběhlo stornování připojení, ne chyba
Catch
' proběhla neočekávaná chyba
mame_chybu_spojeni()
'OdemkniPolozky() ' nakonec odemkneme znovu položky v menu na připojení a vytvoření spojení
End Try
end Sub
Sub CtiData(ByVal at As System.IAsyncResult)
Try
Dim prijato As Integer = networkStream.EndRead(at) ' dokončíme čtení dat a zjistíme kolik dat přišlo
If prijato < 1 Then Throw New Exception() ' spojení bylo ukončeno (přichází 0B dat)
' >> ZDE BUDE KOD NA ZPRACOVANI PRICHOZICH DAT <<
data_read = data_read & System.Text.Encoding.Default.GetString(Buffer, 0, prijato)
zapis_do_richTextBox (data_read)
' >> KONEC KODU NA ZPRACOVANI PRICHOZICH DAT <<
tcp.GetStream.BeginRead(Buffer, 0, BUFFER_SIZE, AddressOf CtiData, Nothing) ' přečetli jsme všechny příchozí data, proto budeme čekat až přijdou další
Catch e As ObjectDisposedException
' proběhlo zrušení spojení
Catch e As Exception
'MsgBox(e.Message)
' nastala chyba, spojení je ukončeno
mame_odpojeni() ' nakonec odemkneme znovu položky v menu na připojení a vytvoření spojení
End Try
End Sub
obráceně je to skoro stejně
Try
Dim bfr(delka_dat_z_RichTextBoxu1.Length - 1) As Byte ' Vytvoříme pole bytu
bfr = System.Text.Encoding.Default.GetBytes(delka_dat_z_RichTextBoxu1) ' převedeme RichTextBox1 na pole bytů
networkStream.Write(bfr, 0, bfr.Length) ' odeslat
Catch ex As Exception
tcp.Close()
End Try
Snad to pomůže. Jinak je jedno co je to za data. V každym případě je to jen řada Bytů.
|