Spørsmålet er da: Hvordan gjør jeg det på windowssiden? Jeg regner med at jeg må bruke windowskommandoer for å avslutte prosesser?
Kode
taskkill /F /IM notepad.exe
Evt.
Kode som gjør alt dette for deg i C#
( Edit: denne koden starter ingen process opp igjen. )
Server:
Kode
UdpClient udpServer = new UdpClient(11000);
while (true)
{
var remoteEndPoint = new IPEndPoint(IPAddress.Any, 11000);
var data = udpServer.Receive(ref remoteEndPoint); // listen on port 11000
string byteData = System.Text.Encoding.UTF8.GetString(data);
Console.WriteLine("Got [" + byteData + "] from " + remoteEndPoint.ToString());
// reply back ( status )
Process[] processesToQuit = Process.GetProcessesByName("notepad");
if (processesToQuit.Length >= 1)
{
// if notepad is running
foreach (Process process in processesToQuit)
{
try
{
process.Kill();
Console.WriteLine("Success! Server Killed notepad.");
const string stringToSend = "Success! Server Killed notepad.";
byte[] bytearray = Encoding.ASCII.GetBytes(stringToSend);
udpServer.Send(bytearray, bytearray.Length, remoteEndPoint);
}
catch (Exception)
{
// if exception on killing notepad
Console.WriteLine("Killing notepad failed.");
const string stringToSend = "Killing notepad failed.";
byte[] bytearray = Encoding.ASCII.GetBytes(stringToSend);
udpServer.Send(bytearray, bytearray.Length, remoteEndPoint);
}
}
}
else
{
// if notepad is not running
Console.WriteLine("Error: Process is not running. ( gives client that info ) .");
const string stringToSend = "notepad is not running.";
byte[] bytearray = Encoding.ASCII.GetBytes(stringToSend);
udpServer.Send(bytearray, bytearray.Length, remoteEndPoint);
}
}
client:
Kode
// creates Client
var client = new UdpClient();
// SERVER IP ( 127.0.0.1 ?)
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000); // endpoint where server is listening
client.Connect(ep);
// what to send ( string )
const string stringToSend = "kill notepad";
// create byteArray of string "stringToSend"
byte[] bytearray = Encoding.ASCII.GetBytes(stringToSend);
// send byteArray
client.Send(bytearray, bytearray.Length);
// then receive data ( status )
var receivedData = client.Receive(ref ep);
string byteData = System.Text.Encoding.UTF8.GetString(receivedData);
Console.WriteLine("Got [" + byteData + "] back from server: " + ep.ToString());
Console.ReadKey();
( Koden er ikke optimal. )
Sist endret av d0nk3y; 19. august 2014 kl. 17:41.