// 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";
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();
}
{
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";