Hallo,
ich bräuchte einmal eure Hilfe und zwar habe ich einen Server
und Client der per TCP Nachrichten Versenden sollen.
TCP Client : sendet eine Nachricht default „ TÜR OFFEN“ (client.vbs) muss ein vbs script sein !
TCP Server Programm soll diese Nachricht empfangen und
ausgeben in der Listbox (server.exe)
Das einzige Problem ist nur das der Server nur empfängt das
der Client was gesendet hat nicht die Nachricht, was muss geändert werden ? Weiß
da jemand bescheid.
Beste Grüße Danke
ich bräuchte einmal eure Hilfe und zwar habe ich einen Server
und Client der per TCP Nachrichten Versenden sollen.
TCP Client : sendet eine Nachricht default „ TÜR OFFEN“ (client.vbs) muss ein vbs script sein !
VB.NET-Quellcode
TCP Server Programm soll diese Nachricht empfangen und
ausgeben in der Listbox (server.exe)
VB.NET-Quellcode
- Imports System.Net
- Imports System.Threading
- Imports System.ComponentModel
- Imports System.Net.Sockets
- Imports System.Windows.Forms
- Imports System
- Public Class Form1
- Delegate Sub setTextCallback(ByVal txt As String)
- Private serversocket As System.Net.Sockets.Socket
- Private clientsocket As System.Net.Sockets.Socket
- Public Event updatetext(ByVal str As String)
- Private Sub myevent_update(ByVal str As String) Handles Me.updatetext
- ListBox1.Items.Add(str)
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim myip As IPAddress = IPAddress.Parse("127.0.0.4")
- Dim port As Integer = 8001
- Dim info As New IPEndPoint(myip, port)
- Dim clientconnect As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
- Try
- clientconnect.Connect(info)
- Dim mybytes(1024) As Byte
- Dim mystr As String = TextBox1.Text
- mybytes = System.Text.Encoding.ASCII.GetBytes(mystr)
- clientconnect.Send(mybytes, mybytes.Length, SocketFlags.None)
- ListBox1.Items.Add("Server: " + mystr)
- Catch ex As Exception
- MsgBox(ex.StackTrace.ToString)
- End Try
- End Sub
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- serversocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
- Dim myip As IPAddress = IPAddress.Parse("127.0.0.4")
- Dim port As Integer = 8000
- Dim info As New IPEndPoint(myip, port)
- serversocket.Bind(info)
- serversocket.Listen(50)
- Dim readthread As New Thread(New ThreadStart(AddressOf myread))
- readthread.Start()
- End Sub
- Private Sub myread()
- Do While True
- clientsocket = serversocket.Accept()
- Dim bytes(1024) As Byte
- Dim i As Integer = clientsocket.Receive(bytes, 0, clientsocket.Available, SocketFlags.None)
- Dim msg As String = "Client: " + System.Text.Encoding.ASCII.GetString(bytes, 0, i)
- 'RaiseEvent updatetext(msg)
- Me.SetText(msg)
- Loop
- End Sub
- Private Sub SetText(ByVal txt As String)
- If Me.ListBox1.InvokeRequired Then
- Dim d As New setTextCallback(AddressOf SetText)
- Me.Invoke(d, New Object() {txt})
- Else
- Me.ListBox1.Items.Add(txt)
- End If
- End Sub
- End Class
Das einzige Problem ist nur das der Server nur empfängt das
der Client was gesendet hat nicht die Nachricht, was muss geändert werden ? Weiß
da jemand bescheid.
Beste Grüße Danke