Ahoj, teprve s tímhle začínám tak jsem si na zkoušku udělal 2 programy - server, který vypíše všechno co přijde a klient co se připojí a odešle text. Server funguje jak má, jenom klient, když napíšu zprávu a enter tak se konzola vypne a server vypíše že se klient odpojil. Proč? Kód je ze seriálu Kreslící tabule pro více uživatelů přes TCP/IP,
Imports System.Net.Sockets
Module Module1
Dim tcp As New TcpClient
Dim networkStream As NetworkStream
Const BUFFER_SIZE As Integer = 512 ' velikost bufferu
Dim Buffer(BUFFER_SIZE) As Byte
Dim text_buffer As String
Dim hostname As String
Sub Main()
Try
Console.WriteLine("hostname?")
hostname = Console.ReadLine()
tcp.BeginConnect(hostname, 33333, AddressOf Pripojit, Nothing)
Console.ReadLine()
Catch e As Exception
Console.WriteLine(e.Message)
Console.ReadLine()
End Try
End Sub
Sub Pripojit(ByVal at As System.IAsyncResult)
Try
tcp.EndConnect(at)
networkStream = tcp.GetStream()
Console.WriteLine("Connected")
PosliPrikaz(Console.ReadLine())
Catch e As ObjectDisposedException
Console.ReadLine()
Catch
Console.WriteLine("Failed")
Console.ReadLine()
End Try
End Sub
Sub PosliPrikaz(ByVal prikaz As String)
Dim Connected As Boolean = False
If Not tcp Is Nothing Then
If Not tcp.Client Is Nothing Then
Connected = tcp.Connected
End If
End If
If Connected = False Then
Console.WriteLine("Not connected")
Console.ReadLine()
Exit Sub
End If
Try
Dim bfr(prikaz.Length - 1) As Byte
bfr = System.Text.Encoding.ASCII.GetBytes(prikaz
networkStream.Write(bfr, 0, bfr.Length)
Console.WriteLine("Sent")
PosliPrikaz(Console.ReadLine())
Catch e As ObjectDisposedException
' proběhlo zrušení spojení
Console.WriteLine(e.Message)
Console.ReadLine()
Catch ex As Exception
tcp.Close()
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try
End Sub
End Module
|