//服务器的代码
private void button3_Click(object sender, EventArgs e)
{
this.listener = new TcpListener(IPAddress.Any, 8888);
this.listener.Start();
Socket s = this.listener.AcceptSocket();
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = s.Receive(recvBytes, recvBytes.Length, 0);
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
if (recvStr.Equals("hello"))
{
string sendStr = "ok";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
s.Send(bs, bs.Length, 0);
//然后自己再启动程序
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
sr.Close();
s.Close();
} this.button3.Enabled = false;
}
//客户端
try
{
int port = 8888;
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("172.17.33.11"), port);
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
c.Connect(ipe);
if (c.Connected)
{
MessageBox.Show("成功连接到服务器!");
string sendStr = "hello";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
c.Send(bs, bs.Length, 0);
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
if (recvStr.Equals("ok"))
{
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
sr.Close(); }
}else {
MessageBox.Show("连接失败!");
}
c.Close();
}
catch (ArgumentNullException e1)
{
Console.WriteLine("ArgumentNullException: {0}", e1);
}
catch (SocketException e1)
{
Console.WriteLine("SocketException: {0}", e1);
}
private void button3_Click(object sender, EventArgs e)
{
this.listener = new TcpListener(IPAddress.Any, 8888);
this.listener.Start();
Socket s = this.listener.AcceptSocket();
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = s.Receive(recvBytes, recvBytes.Length, 0);
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
if (recvStr.Equals("hello"))
{
string sendStr = "ok";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
s.Send(bs, bs.Length, 0);
//然后自己再启动程序
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
sr.Close();
s.Close();
} this.button3.Enabled = false;
}
//客户端
try
{
int port = 8888;
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("172.17.33.11"), port);
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
c.Connect(ipe);
if (c.Connected)
{
MessageBox.Show("成功连接到服务器!");
string sendStr = "hello";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
c.Send(bs, bs.Length, 0);
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
if (recvStr.Equals("ok"))
{
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
sr.Close(); }
}else {
MessageBox.Show("连接失败!");
}
c.Close();
}
catch (ArgumentNullException e1)
{
Console.WriteLine("ArgumentNullException: {0}", e1);
}
catch (SocketException e1)
{
Console.WriteLine("SocketException: {0}", e1);
}
//然后自己再启动程序
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
这是干啥的
整个程序思路是 客户端发送一个请求个服务器 然后服务器返回一个
信息给客户端然安执行下面
1.服务器然后调用System.Diagnostics.Process.Start()启动我事先存在记事本里面的程序
2.客户端接收到服务器的回应马上也调用System.Diagnostics.Process.Start(des);
启动事先启动存在客户端某记事本里面的程序
StreamReader sr = new StreamReader(toFile, true);
string des = sr.ReadLine();
System.Diagnostics.Process.Start(des);
sr.Close();看不明白你程序做什么你没有这样写,应该接收一次(连接),程序就跑完了
while(true)
{
bytes = s.Receive(recvBytes, recvBytes.Length, 0);
}