Jeg har kigget lidt på det, men er stadig ret usikker i det...
Jeg skal bare have sådan at jeg kan sende beskeder peer2peer over nettet...Har kigget på det system.net.sockets, men kan ikke lige få det til at fungere!
Hvis du vil lave et simpelt eksempel, som jeg evt. kan bygge videre på, ville det være lækkert...
Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets
Class Server
Public Shared Sub Main(ByVal args As String()) Dim server As TcpListener = New TcpListener (IPAddress.Any, 1234) server.Start Dim client As TcpClient = server.AcceptTcpClient Dim rdr As StreamReader = New StreamReader (client.GetStream) Dim wrt As StreamWriter = New StreamWriter (client.GetStream) Dim line As String = rdr.ReadLine While Not (line Is Nothing) wrt.WriteLine("Jeg har modtager: " + line) wrt.Flush line = rdr.ReadLine End While rdr.Close wrt.Close client.Close server.Stop End Sub End Class
client:
Imports System Imports System.IO Imports System.Net.Sockets
Class Client
Public Shared Sub Main(ByVal args As String()) Dim client As TcpClient = New TcpClient ("localhost", 1234) Dim wrt As StreamWriter = New StreamWriter (client.GetStream) Dim rdr As StreamReader = New StreamReader (client.GetStream) wrt.WriteLine("Jeg hedder Arne") wrt.Flush Console.WriteLine(rdr.ReadLine) wrt.WriteLine("Dette er en test") wrt.Flush Console.WriteLine(rdr.ReadLine) wrt.Close rdr.Close client.Close End Sub End Class
ok, problemet er bare at serveren stopper når den har modtaget en besked, og når jeg ligger serveren ind i en form, og viser modtaget besked i en textbox, kan, "låser" den indtil den har modtaget en besked, det gør jo at jeg ikke kan ligge dem i den samme form....håber du er med ;-)
Hvis du starter en tråd som kører i en løkke hvor den læser indkomne beskeder og skriver dem til et text area, mens hoved tråden processer bruger input og sender dem.
Så får man den rigtige "interaktive" feel.
Der er også andre måder at gøre det på, men 2 forbindelser og 2 tråde er en af den nemmere at overskue.
Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Threading
Class P1
Public Shared Sub Main(ByVal args As String()) Dim t As Thread = New Thread (AddressOf ReadAndDisplay) t.Start Thread.Sleep(10000) Dim client As TcpClient = New TcpClient ("localhost", 10002) Dim wrt As StreamWriter = New StreamWriter (client.GetStream) Dim line As String = Console.ReadLine While Not (line Is Nothing) wrt.WriteLine(line) wrt.Flush line = Console.ReadLine End While wrt.Close client.Close End Sub Public Shared Sub ReadAndDisplay Dim server As TcpListener = New TcpListener (IPAddress.Any, 10001) server.Start Dim client As TcpClient = server.AcceptTcpClient Dim rdr As StreamReader = New StreamReader (client.GetStream) Dim line As String = rdr.ReadLine While Not (line Is Nothing) Console.WriteLine(line) line = rdr.ReadLine End While rdr.Close client.Close server.Stop End Sub End Class
Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Threading
Class P2
Public Shared Sub Main(ByVal args As String()) Dim t As Thread = New Thread (AddressOf ReadAndDisplay) t.Start Thread.Sleep(10000) Dim client As TcpClient = New TcpClient ("localhost", 10001) Dim wrt As StreamWriter = New StreamWriter (client.GetStream) Dim line As String = Console.ReadLine While Not (line Is Nothing) wrt.WriteLine(line) wrt.Flush line = Console.ReadLine End While wrt.Close client.Close End Sub Public Shared Sub ReadAndDisplay Dim server As TcpListener = New TcpListener (IPAddress.Any, 10002) server.Start Dim client As TcpClient = server.AcceptTcpClient Dim rdr As StreamReader = New StreamReader (client.GetStream) Dim line As String = rdr.ReadLine While Not (line Is Nothing) Console.WriteLine(line) line = rdr.ReadLine End While rdr.Close client.Close server.Stop End Sub End Class
sry jeg ikke har skrevet før, men jeg har ikke haft tid til at kigge så meget på det.
Jeg kunne ikke umiddelbart få det til at fungere, men leger lige lidt mere med det..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.