//服务器的代码   
    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);
                }

解决方案 »

  1.   

    我windows防火墙一直就没开过 呵呵
      

  2.   

    嗯。首先我不知道
    //然后自己再启动程序
      StreamReader sr = new StreamReader(toFile, true);
      string des = sr.ReadLine();
      System.Diagnostics.Process.Start(des);
    这是干啥的
      

  3.   

    这个就是读取一个记事本文件里面记录的程序路径  然后再启动
      整个程序思路是  客户端发送一个请求个服务器  然后服务器返回一个
    信息给客户端然安执行下面
    1.服务器然后调用System.Diagnostics.Process.Start()启动我事先存在记事本里面的程序
    2.客户端接收到服务器的回应马上也调用System.Diagnostics.Process.Start(des);
    启动事先启动存在客户端某记事本里面的程序
      

  4.   

    //然后自己再启动程序
      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);
    }