Я бы рекомендовал изучить UdpClient class, это хороший вариант для новичков.
Вы сначала начинаете с «настройки» двух клиентов, один для отправки данных, и один для прослушивания входящих данных. После того, как вы назначили клиентов с соответствующими адресами и номерами портов, вы затем запустите клиент прослушивания в цикле, чтобы вы могли последовательно слушать данные.
Затем вы подключаете свой отправляющий клиент к какой-либо форме триггера (в приведенном ниже примере я установил мой клиент отправки на событие кнопки), чтобы вы могли отправлять данные с нерегулярными интервалами , или вы можете настроить клиента в цикле для непрерывной отправки данных.
После того, как вы это сделали, вам нужно будет преобразовать данные, которые вы хотите отправить , отправить из строки в массив байтов, после чего вы можете, наконец, отправить его, и наоборот, для получения данных (от байтового массива до строки).
Вот простой пример,
Imports System.Net.Sockets
Imports System.Threading
Imports System.Text
Imports System.Net
Public Class Form1
Private Const port As Integer = 9653 'Or whatever port number you want to use
Private Const broadcastAddress As String = "255.255.255.255"
Private receivingClient As UdpClient
Private sendingClient As UdpClient
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
InitializeSender()
InitializeReceiver()
End Sub
Private Sub InitializeSender()
sendingClient = New UdpClient(broadcastAddress, port) 'Use broadcastAddress for sending data locally (on LAN), otherwise you'll need the public (or global) IP address of the machine that you want to send your data to
sendingClient.EnableBroadcast = True
End Sub
Private Sub InitializeReceiver()
receivingClient = New UdpClient(port)
ThreadPool.QueueUserWorkItem(AddressOf Receiver) 'Start listener on another thread
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim stringToSend As String = TextBox1.Text 'Assuming you have a textbox with the data you want to send
If (Not String.IsNullOrEmpty(stringToSend)) Then
Dim data() As Byte = Encoding.ASCII.GetBytes(stringToSend)
sendingClient.Send(data, data.Length)
End If
End Sub
Private Sub Receiver()
Dim endPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, port) 'Listen for incoming data from any IP on the specified port
Do While True 'Notice that i've setup an infinite loop to continually listen for incoming data
Dim data() As Byte
data = receivingClient.Receive(endPoint)
Dim message As String = Encoding.ASCII.GetString(data) 'Recived data as string
Loop
End Sub
End Class
И теперь для добавления окна списка доступных игр.
Short ответ, это
невозможно
очень, очень сложно сделать, если у вас нет сервера.
Longer ответ, вам понадобится сервер, и если у вас есть сервер, вам понадобится создать дополнительную программу для обработки передаваемых ей данных и отправить данные другим пользователям.
Я мог бы объяснить, как настроить дополнительную программу и т. Д. И т. Д., Но, судя по тому, что ваши навыки программирования в сети все еще «распространяют свои крылья», я предлагаю вам отказаться от дополнительных функций, подобных этому, пока вы не иметь больше опыта, тогда, когда вы более уверены, попробуйте сами, и если вы все еще боретесь, просто задайте вопрос здесь, и я уверен, что кто-то вам поможет.
Начните с изучения того, как использовать TcpClient и TcpListener. В Интернете много примеров. Сначала создайте локальную сеть, так как она упрощает ... –