麻烦各位,由于从来没写过通信的程序,烦各位能不能说的详细点. 我用socket试了试,好象没有清晰的思路.

解决方案 »

  1.   

    本地的还是远程的?
    本地的有domain域可以考虑,远程的就用socket
      

  2.   


    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new ThreadPoolSer());
    } void start()
    {
    int recv;
    byte[] data=new byte[1024];
    try
    {
    server=new TcpListener(9955);
    server.Start();
    }
    catch(SocketException)
    {
    MessageBox.Show("服务器无法启动");
    return;
    }
    client=server.AcceptTcpClient();
    ns=client.GetStream();
    //Message 1
    string msg1="wel come my server";
    data=Encoding.GetEncoding("gb2312").GetBytes(msg1);
    ns.Write(data,0,data.Length);
    ns.Flush(); while(true)
    {
    data=new byte[1024];
    recv=ns.Read(data,0,data.Length);
    if(recv==0)
    break;
                        tb_recv.Text+="recv:"+Encoding.GetEncoding("gb2312").GetString(data,0,recv)+System.Environment.NewLine;
                    } } private void bt_start_Click(object sender, System.EventArgs e)
    {
    Thread tr=new Thread(new ThreadStart(start));
    tr.Start();
    } private void bt_send_Click(object sender, System.EventArgs e)
    {
    if(ns!=null)
    { byte[] data=new byte[1024];
    string sendstring=tb_sendstr.Text;
    data=Encoding.GetEncoding("gb2312").GetBytes(sendstring);
    ns.Write(data,0,data.Length);
    ns.Flush();
    tb_recv.Text+="send:"+sendstring+System.Environment.NewLine;
    } }
    }
    }---------------------------------------------------------
    private void bt_send_Click(object sender, System.EventArgs e)
    {
    if(ns!=null)
    {
    byte[] data=new byte[1024];
    string sendstr=tb_sendstr.Text;
    data=Encoding.GetEncoding("gb2312").GetBytes(sendstr);
    ns.Write(data,0,data.Length);
    ns.Flush();
    textBox1.Text+="Send::"+sendstr+System.Environment.NewLine;
    }
    } private void bt_connect_Click(object sender, System.EventArgs e)
    {
         Thread tr=new Thread(new ThreadStart(start));
     tr.Start();
    } private void button1_Click(object sender, System.EventArgs e)
    {
    ns.Close();
    client.Close();
    }
    }
      

  3.   

    用TCP或是UDP吧,基于Socket,用起来方便~~