Hej igen
Jeg har nu taget et hurtigt kig på din servers kode, og det ser for mig ud som at den kører på TCP sockets, og ikke UDP som tidligere nævnt?
Såfremt det er TCP kan du bruge .NETs TcpClient klasse (og der findes en tilsvarende UdpClient klasse til UDP). Jeg har lavet et lille eksempel nedenfor:
- public class ServerController
- {
- private TcpClient _tcpClient;
- private StreamWriter _writer;
-
- public void Connect(string hostname, int port)
- {
- _tcpClient = new TcpClient();
- _tcpClient.Connect(hostname, port);
- _writer = new StreamWriter(_tcpClient.GetStream(), Encoding.ASCII);
- }
-
- public void Disconnect()
- {
- _writer.Dispose();
- _tcpClient.Close();
- }
-
- public void CloseDown()
- {
- sendText("CLOSEDOWN");
- }
-
- private void sendText(string text)
- {
- _writer.WriteLine(text);
- _writer.Flush();
- }
- }
Og for at bruge klassen kunne du lave tre knapper connect/closedown/disconnect med koden:
- ServerController _serverController = new ServerController();
-
- private void CloseDown_Clicked(object sender, EventArgs e)
- {
- _serverController.CloseDown();
- }
-
- private void Connect_Clicked(object sender, EventArgs e)
- {
- _serverController.Connect("XXX.XXX.XXX.XXX", 12345); // Her angives ip og port på serveren
- }
-
- private void Disconnect_Clicked(object sender, EventArgs e)
- {
- _serverController.Disconnect();
- }
Det er ikke lige lykkedes mig at få din server til at køre så det er ikke testet. Men håber du kan bruge det til at komme videre.
Indlæg senest redigeret d. 14.08.2009 00:57 af Bruger #2416