当前位置:编程学习 > C#/ASP.NET >>

采用UDP广播模式写简单信息传输工具~

答案:使用UDPClient类
这个是我写的测试代码,供参考~

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Globalization;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;

namespace UDPWinTest
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnStart;
private System.Windows.Forms.Button btnJoin;
private System.Windows.Forms.TextBox txtServerIP;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox txtMsgSend;
private System.Windows.Forms.TextBox txtMessageMain;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;

private static UdpClient m_Client;

private static int ListenerPort = 80;
private static int SenderPort = 80;
private static int LocalPort;
private static int RemotePort;

private static string m_szHostName;

private static IPAddress m_GroupAddress;
private static IPHostEntry m_LocalHost;
private static IPEndPoint m_RemoteEP;
private System.Windows.Forms.Button btnEnd;

private static bool m_Done = false;
private System.Windows.Forms.Button btnClose;

private Thread t = null ;
private Thread t2 = null ;

public Form1()
{
InitializeComponent();
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnStart = new System.Windows.Forms.Button();
this.btnJoin = new System.Windows.Forms.Button();
this.txtServerIP = new System.Windows.Forms.TextBox();
this.txtMessageMain = new System.Windows.Forms.TextBox();
this.txtMsgSend = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.btnEnd = new System.Windows.Forms.Button();
this.btnClose = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnStart
//
this.btnStart.Location = new System.Drawing.Point(16, 16);
this.btnStart.Name = "btnStart";
this.btnStart.TabIndex = 0;
this.btnStart.Text = "Start";
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
//
// btnJoin
//
this.btnJoin.Location = new System.Drawing.Point(408, 16);
this.btnJoin.Name = "btnJoin";
this.btnJoin.TabIndex = 1;
this.btnJoin.Text = "Join";
this.btnJoin.Click += new System.EventHandler(this.btnJoin_Click);
//
// txtServerIP
//
this.txtServerIP.Location = new System.Drawing.Point(304, 16);
this.txtServerIP.Name = "txtServerIP";
this.txtServerIP.Size = new System.Drawing.Size(96, 21);
this.txtServerIP.TabIndex = 2;
this.txtServerIP.Text = "10.89.58.220";
//
// txtMessageMain
//
this.txtMessageMain.Location = new System.Drawing.Point(16, 48);
this.txtMessageMain.Multiline = true;
this.txtMessageMain.Name = "txtMessageMain";
this.txtMessageMain.Size = new System.Drawing.Size(464, 184);
this.txtMessageMain.TabIndex = 3;
this.txtMessageMain.Text = "";
//
// txtMsgSend
//
this.txtMsgSend.Location = new System.Drawing.Point(16, 240);
this.txtMsgSend.Name = "txtMsgSend";
this.txtMsgSend.Size = new System.Drawing.Size(384, 21);
this.txtMsgSend.TabIndex = 4;
this.txtMsgSend.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(408, 240);
this.button1.Name = "button1";
this.button1.TabIndex = 5;
this.button1.Text = "Send";
this.button1.Click += new System.EventHandler(this.Send_Click);
//
// btnEnd
//
this.btnEnd.Location = new System.Drawing.Point(112, 16);
this.btnEnd.Name = "btnEnd";
this.btnEnd.TabIndex = 6;
this.btnEnd.Text = "End";
this.btnEnd.Click += new System.EventHandler(this.btnEnd_Click);
//
// btnClose
//
this.btnClose.Location = new System.Drawing.Point(208, 16);
this.btnClose.Name = "btnClose";
this.btnClose.TabIndex = 7;
this.btnClose.Text = "Close";
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(504, 273);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnEnd);
this.Controls.Add(this.button1);
this.Controls.Add(this.txtMsgSend);
this.Controls.Add(this.txtMessageMain);
this.Controls.Add(this.txtServerIP);
this.Controls.Add(this.btnJoin);
this.Controls.Add(this.btnStart);
this.Name = "Form1";
this.Text = "UDPWinTest";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void btnStart_Click(object sender, System.EventArgs e)
{
LocalPort = SenderPort;
RemotePort = ListenerPort;

m_szHostName = Dns.GetHostName();
m_LocalHost = Dns.GetHostByName(m_szHostName);

AddToMain("Local Port: " + LocalPort + ", Remote: " + RemotePort);
AddToMain("Initializing...");

string LocalHostIP = m_LocalHost.AddressList[0].ToString();
string[] ArrIP = LocalHostIP.Split(new char[]{'.'});
LocalHostIP = "224" + "." + ArrIP[1] + "." + ArrIP[2] + "." + ArrIP[3];

Initialize(LocalHostIP);

AddToMain("Starting Listener t

上一个:遍历ASP.NET页面控件
下一个:Different event log entries that are generated by ASP.NET

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,