2010-04-14 18 views
19

Mam serwer gry (WoW). Chcę, aby moi gracze pobrali moje niestandardowe łatki do gry. Zrobiłem program, który sprawdza dostępność aktualizacji/pobierania. Chcę, aby mój program wysłał pakiet do mojego serwera gry, jeśli gracz ma wszystkie moje łatki. Nie potrzebuję żadnej odpowiedzi od serwera, poradzi sobie z tym, ale jest to inna historia.Wysyłanie pakietu UDP w języku C#

Więc chcę wiedzieć, jak wysłać pakiet na serwer.

Dziękujemy!

Odpowiedz

37
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 
ProtocolType.Udp); 

IPAddress serverAddr = IPAddress.Parse("192.168.2.255"); 

IPEndPoint endPoint = new IPEndPoint(serverAddr, 11000); 

string text = "Hello"; 
byte[] send_buffer = Encoding.ASCII.GetBytes(text); 

sock.SendTo(send_buffer , endPoint); 
+0

Dziękujemy! Sprawdzę to! :) – DOminik

9
static void SendUdp(int srcPort, string dstIp, int dstPort, byte[] data) 
{ 
    using (UdpClient c = new UdpClient(srcPort)) 
     c.Send(data, data.Length, dstIp, dstPort); 
} 

Zastosowanie:

SendUdp(11000, "192.168.2.255", 11000, Encoding.ASCII.GetBytes("Hello!")); 
+0

Czy mógłbyś spojrzeć na mój problem? Dostałem trzysekundowe opóźnienie z metodą Dispose, używając nieosiągalnego adresu IP. @Bachor https://stackoverflow.com/questions/44694061/udpclient-unreachable-ip-connection-time-with-using-blocks –