DirectPlay8 - TCP/IP - Dienstanbieter ... Zugriff über Router??? -> P2P

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Malischh.

    daran liegt's nicht...
    ich hab den Port für den PC des Servers freigegeben (Router: Speedport W701-V)

    --------------------

    Das sind Konsolen:
    TCP SERVER CODE:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.Net
    4. Imports System.Net.Sockets
    5. Imports System.Text
    6. Imports Microsoft.VisualBasic
    7. Module Module1
    8. Sub connect(ByVal ip As String)
    9. Dim server As TcpListener
    10. server = Nothing
    11. Try
    12. ' Set the TcpListener on port 13000.
    13. Dim port As Int32 = 1234
    14. Dim localAddr As IPAddress = IPAddress.Parse(ip)
    15. server = New TcpListener(localAddr, port)
    16. ' Start listening for client requests.
    17. server.Start()
    18. ' Buffer for reading data
    19. Dim bytes(1024) As Byte
    20. Dim data As String = Nothing
    21. ' Enter the listening loop.
    22. While True
    23. Console.Write("Warte auf eine Verbindung... ")
    24. ' Perform a blocking call to accept requests.
    25. ' You could also user server.AcceptSocket() here.
    26. Dim client As TcpClient = server.AcceptTcpClient()
    27. Console.WriteLine("Verbunden!")
    28. data = Nothing
    29. ' Get a stream object for reading and writing
    30. Dim stream As NetworkStream = client.GetStream()
    31. Dim i As Int32
    32. ' Loop to receive all the data sent by the client.
    33. i = stream.Read(bytes, 0, bytes.Length)
    34. While (i <> 0)
    35. ' Translate data bytes to a ASCII string.
    36. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
    37. ' Hier hast du den empfangenen string data
    38. If data <> "" Then
    39. Console.WriteLine("")
    40. Console.WriteLine("Empfangen: " & data & "")
    41. Console.WriteLine("")
    42. Console.WriteLine("Bitte Antwort eingeben!")
    43. Console.WriteLine("")
    44. Else
    45. Console.WriteLine("Es wurden keine Daten gesendet.")
    46. End If
    47. 'Anschließend gibst du die antwort:
    48. data = Console.ReadLine()
    49. Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
    50. stream.Write(msg, 0, msg.Length)
    51. Console.WriteLine("")
    52. Console.WriteLine("Antwort gesendet: {0}", data)
    53. Console.WriteLine("")
    54. i = stream.Read(bytes, 0, bytes.Length)
    55. End While
    56. ' Shutdown and end connection
    57. client.Close()
    58. End While
    59. Catch e As SocketException
    60. Console.WriteLine("FEHLER - ERROR: {0}", e)
    61. Finally
    62. server.Stop()
    63. End Try
    64. Console.WriteLine(ControlChars.Cr + "Bitte ENTER drücken....")
    65. Console.Read()
    66. End Sub
    67. Sub Main()
    68. Dim IP As Net.IPAddress
    69. Try
    70. IP = Net.Dns.Resolve(My.Computer.Name).AddressList(0)
    71. Catch ex As Exception
    72. MsgBox("Die IP konnte nicht ermittelt werden!")
    73. End Try
    74. Console.WriteLine("Welcome to TCP-Server!")
    75. Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
    76. Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
    77. Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
    78. Console.WriteLine("====================")
    79. Console.WriteLine("Ermittelte IP:")
    80. Console.WriteLine("====================")
    81. Console.WriteLine(IP.ToString)
    82. Console.WriteLine("====================")
    83. Console.WriteLine("Falls IP richtig oder IP unbekannt, bitte die Obenstehende IP eingeben!")
    84. Console.WriteLine("====================")
    85. connect(Console.ReadLine)
    86. End Sub
    87. End Module


    TCP Client Code:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.Net
    4. Imports System.Net.Sockets
    5. Module Module1
    6. Sub Main()
    7. Console.WriteLine("Bitte geben sie die IP des Servers ein: ")
    8. Dim temp As String = Console.ReadLine
    9. Console.WriteLine("Bitte die Nachricht eingeben: ")
    10. Connect(temp, Console.ReadLine)
    11. End Sub
    12. Sub Connect(ByVal server As [String], ByVal message As [String])
    13. Try
    14. ' Create a TcpClient.
    15. ' Note, for this client to work you need to have a TcpServer
    16. ' connected to the same address as specified by the server, port
    17. ' combination.
    18. Dim port As Int32 = 1234
    19. Dim client As New TcpClient(server, port)
    20. ' Translate the passed message into ASCII and store it as a Byte array.
    21. Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
    22. ' Get a client stream for reading and writing.
    23. ' Stream stream = client.GetStream();
    24. Dim stream As NetworkStream = client.GetStream()
    25. ' Send the message to the connected TcpServer.
    26. stream.Write(data, 0, data.Length)
    27. Console.WriteLine("")
    28. Console.WriteLine("Gesendet: {0}", message)
    29. Console.WriteLine("")
    30. ' Receive the TcpServer.response.
    31. ' Buffer to store the response bytes.
    32. data = New [Byte](256) {}
    33. ' String to store the response ASCII representation.
    34. Dim responseData As [String] = [String].Empty
    35. ' Read the first batch of the TcpServer response bytes.
    36. Dim bytes As Int32 = stream.Read(data, 0, data.Length)
    37. responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
    38. Console.WriteLine("")
    39. Console.WriteLine("Empfangen: {0}", responseData)
    40. Console.WriteLine("")
    41. ' Close everything.
    42. stream.Close()
    43. client.Close()
    44. Catch e As ArgumentNullException
    45. Console.WriteLine("FEHLER - ERROR: {0}", e)
    46. Catch e As SocketException
    47. Console.WriteLine("FEHLER - ERROR: {0}", e)
    48. End Try
    49. Console.WriteLine(ControlChars.Cr + " Bitte ENTER drücken...")
    50. Console.Read()
    51. End Sub 'Connect
    52. End Module