这是一个TCP通信程序,小弟初学,是个菜鸟
求助各位帮忙修改一下程序
服务器端发送Form中N个textBox中的消息,客户端对应的N个textBox接收
代码如下:
TcpSever: public partial class Form1 : Form
    {
        TcpListener listener;
        Socket s;
        private void button1_Click(object sender, EventArgs e)//启动服务器
        {
            //启动监听器
               listener = new TcpListener(9999);
             listener.Start();
            
            
            s= listener.AcceptSocket();
            Thread th = new Thread(new ThreadStart (Receive));
            th.IsBackground = true;
            th.Start();
}
         private void button2_Click_1(object sender, EventArgs e)//发送
        {
            byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
            byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
            byte[] br5 = new byte[1024];
            br1 = new UTF8Encoding().GetBytes(textBox1.Text); s.Send(br1);
            br2 = new UTF8Encoding().GetBytes(textBox2.Text); s.Send(br2);
            br3 = new UTF8Encoding().GetBytes(textBox3.Text); s.Send(br3);
            br4 = new UTF8Encoding().GetBytes(textBox4.Text); s.Send(br4);
            br5 = new UTF8Encoding().GetBytes(textBox5.Text); s.Send(br5);        }
}
TcpClient:
   public partial class Form1 : Form
       {
           TcpClient client;
           NetworkStream ns;
       private void button1_Click(object sender, EventArgs e)//连接服务器
        {
            client = new TcpClient("127.0.0.1",9999);
            ns = client.GetStream();
            UTF8Encoding code = new UTF8Encoding();
            byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
            byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
            byte[] br5 = new byte[1024];            ns.Read(br1, 0, br1.Length); ns.Read(br2, 0, br2.Length);
            ns.Read(br3, 0, br3.Length); ns.Read(br4, 0, br4.Length);
            ns.Read(br5, 0, br5.Length);
            this.textBox2.Text = code.GetString(br1);
            this.textBox3.Text = code.GetString(br2);
            this.textBox4.Text = code.GetString(br3);
            this.textBox5.Text = code.GetString(br4);
            this.textBox6.Text = code.GetString(br5); }
明知程序是错的,可就是不知道该怎么改
请各位帮忙

解决方案 »

  1.   

    网上找找相应的代码,需要我也可以发给你!留下email
      

  2.   

       #region 监听并接收数据
            public void jiangting()
            {
                toolStripStatusLabel1 .Text ="开始监听客户端连接....";
                ippoint = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text));
                socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                               
                    socket.Bind(ippoint);
                    socket.Listen(50);          
             
                
                while (true)
                {
                    accsoket = null;
                    try
                    {
                        accsoket = socket.Accept();                 
                    }
                    catch(Exception err)
                    {
                        break;
                        MessageBox.Show("没有连接"+err.Message );                }
                    Thread thread1 = new Thread(new ParameterizedThreadStart(recedata ));               
                    thread1.Start();         
                }
             }
            #endregion
           
            void recedata(object obj)//接收数据
            {
                user userrece = (user)obj;
                Socket soc = userrece.socket;
                 while (true)
                  {
                    
                    NetworkStream network =userrece .network ;
                    byte[] bt = new byte[1024];
                    try
                    {
                        network.Read(bt, 0, bt.Length);
                    }
                    catch
                    {
                        return;
                    }
                     string str=System.Text.Encoding.Default.GetString(bt);
                     if (str.IndexOf("Exit", 0) > -1)
                     { 
                         richTextBox2.Text += soc.RemoteEndPoint .ToString ()+" 退出..\r\n";
                      
                         comboBox1.Items.Remove(soc.RemoteEndPoint);
                         userlist.Remove(userrece);                     soc.Close();
                      
                     }                    
                     else
                     {  richTextBox2.Text =richTextBox2.Text  +soc.RemoteEndPoint .ToString ()+" :"+str+System .Environment .NewLine ;
                 
                     }             
                 
                 
                }        } #region 发送数据
            void sendmessage(Socket socket)
            {
                try
                {
                    byte[] bt = new byte[1024];
                    bt = System.Text.Encoding.Default.GetBytes(richTextBox1.Text+"\r\n");
                    NetworkStream network = new NetworkStream(socket );
                    network.Write(bt, 0, bt.Length);
                    network.Flush();
                    toolStripStatusLabel1.Text = "发送信息";
                              }
                catch
                {
                    toolStripStatusLabel1.Text = "连接没有建立";
                    MessageBox.Show("请先建立连接");
                }        }
            #endregion