you want tcp or ucp?

解决方案 »

  1.   

    UDP:
        public class UDPServer
        {
            private System.Windows.Forms.ListBox lbDisplay;        private System.Threading.Thread myThread = null;        public UDPServer(System.Windows.Forms.ListBox lbDisplay_)
            {
                lbDisplay = lbDisplay_;
            }        public void Start()
            {
                if ( null != myThread )
                {
                    myThread.Abort();
                    myThread = null;
                }            myThread = new System.Threading.Thread(
                    new System.Threading.ThreadStart(StartReceiv));
                myThread.Start();
            }        public void Dispose()
            {
                myThread.Abort();
            }        protected void StartReceiv()
            {
                /**
                //Creates an IPEndPoint to record the IP Address and port number of the sender. 
                // The IPEndPoint will allow you to read datagrams sent from any source.
                IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 8088);            //Creates a UdpClient for reading incoming data.
                UdpClient receivingUdpClient = new UdpClient(RemoteIpEndPoint);
                **/
                UdpClient receiver = new UdpClient(8088);
                while (true)
                {
                    try
                    {
                        IPEndPoint RemoteIpEndPoint = null;
                        Byte[] receiveBytes = receiver.Receive(ref RemoteIpEndPoint);
                        string returnData = System.Text.Encoding.UTF8.GetString(receiveBytes);
                        string msg = DateTime.Now + ":" 
                            + RemoteIpEndPoint.Address.ToString()
                            + "#" + RemoteIpEndPoint.Port.ToString()
                            + ": " + returnData.ToString();
                        lbDisplay.Items.Add(msg);
                        lbDisplay.SelectedIndex = lbDisplay.Items.Count - 1;
                        lbDisplay.SelectedIndex =  - 1;
                        //MessageBox.Show(msg);                    Console.WriteLine(msg);
                    }
                    catch ( Exception e )
                    {
                        MessageBox.Show(e.Message); 
                        break;
                    }
                }
            }
        }        private void btnSend_Click(object sender, System.EventArgs e)
            {
                UdpClient udpSender = new UdpClient();
                Byte[] buf = System.Text.Encoding.UTF8.GetBytes(txtMsg.Text);
                try
                {
                    udpSender.Send(buf, buf.Length, "192.168.1.2", 8089);
                }
                catch ( Exception ee )
                {
                    MessageBox.Show(ee.Message);    
                }
                udpSender.Close();
            }
      

  2.   

    erver = new TcpClient(POPServ.Text,110);      Status.Items.Clear();   try
       {
        
        NetStrm = Server.GetStream();    RdStrm= new StreamReader(Server.GetStream());    Status.Items.Add(RdStrm.ReadLine());
            
        Data = "USER "+ User1.Text+CRLF;    szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());    NetStrm.Write(szData,0,szData.Length);    Status.Items.Add(RdStrm.ReadLine());
                        
        Data = "PASS "+ Passw.Text+CRLF;
        
        szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());    NetStrm.Write(szData,0,szData.Length);    Status.Items.Add(RdStrm.ReadLine());
        
        Data = "STAT"+CRLF;    szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());    NetStrm.Write(szData,0,szData.Length);    Status.Items.Add(RdStrm.ReadLine());
        ConnectBtn.Enabled = false;    DisconnectBtn.Enabled = true;    RetrieveBtn.Enabled = true;    
        //Cursor.Current = cr;   }   catch(InvalidOperationException err)
       {    Status.Items.Add("Error: "+err.ToString());   }
    --------------------------------------------------------------------------这是在获取邮件时的代码:
    string szTemp;
       string  encodedMai=Message.Text;
       Message.Text="";
       try
       {   
        Data = "RETR "+ Number.Text+CRLF;
        
        szData = System.Text.Encoding.GetEncoding(936).GetBytes(Data.ToCharArray());
      
        NetStrm.Write(szData,0,szData.Length);
       
        szTemp = RdStrm.ReadLine();
        if(szTemp[0]!='-') 
        {
            
         while(szTemp!=".")
         {
          Message.Text += szTemp;
          szTemp = RdStrm.ReadLine();
         }
        }
        else
        {
         Status.Items.Add(szTemp);
        }
            
        // back to normal cursor
        //Cursor.Current = cr;   }
       catch(InvalidOperationException err)
       {
        Status.Items.Add("Error: "+err.ToString());
       }
      }
      public TcpClient Server;
      public NetworkStream NetStrm;
      public StreamReader  RdStrm;
      public string Data;
      public byte[] szData;
      public string CRLF = "\r\n";