private void HandleSearchMessage(Message message) { Message messageResponse = new Message(MessageTypes.SearchResponse, NetNodeInfo.GetCurrentIP().ToString(), port); Socket socketSetAdress = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(message.ipAddress), message.port); Console.WriteLine(messageResponse.ipAddress); socketSetAdress.SendTo(messageSerializer.Serialize(messageResponse), endPoint); }
public void UdpBroadcastRequest() { Message message = new Message(MessageTypes.SearchRequest); message.port = ((IPEndPoint)socketUdpHandler.LocalEndPoint).Port; message.ipAddress = NetNodeInfo.GetCurrentIP().ToString(); IPEndPoint IPendPoint = new IPEndPoint(IPAddress.Parse(broadcastIP), 8005); Socket sendRequest = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); sendRequest.SendTo(messageSerializer.Serialize(message), IPendPoint); Thread threadReceiveUdp = new Thread(ReceiveMessagesUdp); threadReceiveUdp.Start(); }
public void StartServer() { IPEndPoint endPoint = new IPEndPoint(NetNodeInfo.GetCurrentIP(), port); server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind(endPoint); server.Listen(MaxConnectionAmount); Thread handleUDP = new Thread(ListenUDPBroadcast); handleUDP.Start(); while (true) { client = server.Accept(); Connections.Add(id, client); var connectionInfo = new ConnectionInfo(client, id++); Thread thread = new Thread(new ParameterizedThreadStart(RecieveMessage)); thread.Start(connectionInfo); } }