利用UDP进行信息传输
2008-10-23 14:04
459 查看
页面中控件两个textBox,(txtBox1,TbxMessage)一个button(btnSend)
//创建一个Thread实例
private Thread thread1;
//创建一个UdpClient实例
private UdpClient udpReceive;
private UdpClient udpSend;
private byte[] bytes;
//private DialogResult result;
public myUdpClient()
{
InitializeComponent();
}
private void myUdpClient_Load(object sender, EventArgs e)
{
thread1 = new Thread(new ThreadStart(ReceiveMessage));
thread1.Start();
this.textBox1.Text = "221.221.146.63";
}
private void BtnSend_Click(object sender, EventArgs e)
{
//初始化UdpClient
udpSend = new UdpClient();
//实际使用时应将127.0.0.1改为服务器的远程IP
IPAddress remoteIPAddress = IPAddress.Parse(this.textBox1.Text.Trim());
IPEndPoint remoteIPEndPoint = new IPEndPoint(remoteIPAddress, 8001);
//将发送内容转换为字节数组
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(TbxMessage.Text);
//设置重传次数
int retry = 0;
while (true)
{
try
{
udpSend.Send(bytes, bytes.Length, remoteIPEndPoint);
break;
}
catch (SocketException se)
{
if (retry < 3)
{
retry++; continue;
}
else
{
DialogResult result = MessageBox.Show("发送失败!");
break;
}
}
}
//清空TbxMesage中的内容
TbxMessage.Clear();
//光标还原
TbxMessage.Focus();
//关闭UdpClient
}
private void ReceiveMessage()
{
//在本机指定的端口接收
udpReceive = new UdpClient(8001);
//将套接字加入组播组
udpReceive.JoinMulticastGroup(IPAddress.Parse("224.100.0.10"), 50);
//接收从远程主机发送过来的信息
IPEndPoint iep= new IPEndPoint(IPAddress.Any, 0);
while (true)
{
//ref表示引用类型的 IPPoint实例接收消息
try
{
bytes = udpReceive.Receive(ref iep);
}
catch(SocketException e)
{
DialogResult result = MessageBox.Show("发送失败!");
}
string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
string message = "来自" + iep.ToString() + "的消息";
//显示消息 并以message为消息的标题
DialogResult res = MessageBox.Show(str, message);
}
}
private void myUdpClient_FormClosing(object sender, FormClosingEventArgs e)
{
//关闭连接
udpReceive.Close();
udpSend.Close();
//终止线程
thread1.Abort();
}
//创建一个Thread实例
private Thread thread1;
//创建一个UdpClient实例
private UdpClient udpReceive;
private UdpClient udpSend;
private byte[] bytes;
//private DialogResult result;
public myUdpClient()
{
InitializeComponent();
}
private void myUdpClient_Load(object sender, EventArgs e)
{
thread1 = new Thread(new ThreadStart(ReceiveMessage));
thread1.Start();
this.textBox1.Text = "221.221.146.63";
}
private void BtnSend_Click(object sender, EventArgs e)
{
//初始化UdpClient
udpSend = new UdpClient();
//实际使用时应将127.0.0.1改为服务器的远程IP
IPAddress remoteIPAddress = IPAddress.Parse(this.textBox1.Text.Trim());
IPEndPoint remoteIPEndPoint = new IPEndPoint(remoteIPAddress, 8001);
//将发送内容转换为字节数组
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(TbxMessage.Text);
//设置重传次数
int retry = 0;
while (true)
{
try
{
udpSend.Send(bytes, bytes.Length, remoteIPEndPoint);
break;
}
catch (SocketException se)
{
if (retry < 3)
{
retry++; continue;
}
else
{
DialogResult result = MessageBox.Show("发送失败!");
break;
}
}
}
//清空TbxMesage中的内容
TbxMessage.Clear();
//光标还原
TbxMessage.Focus();
//关闭UdpClient
}
private void ReceiveMessage()
{
//在本机指定的端口接收
udpReceive = new UdpClient(8001);
//将套接字加入组播组
udpReceive.JoinMulticastGroup(IPAddress.Parse("224.100.0.10"), 50);
//接收从远程主机发送过来的信息
IPEndPoint iep= new IPEndPoint(IPAddress.Any, 0);
while (true)
{
//ref表示引用类型的 IPPoint实例接收消息
try
{
bytes = udpReceive.Receive(ref iep);
}
catch(SocketException e)
{
DialogResult result = MessageBox.Show("发送失败!");
}
string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
string message = "来自" + iep.ToString() + "的消息";
//显示消息 并以message为消息的标题
DialogResult res = MessageBox.Show(str, message);
}
}
private void myUdpClient_FormClosing(object sender, FormClosingEventArgs e)
{
//关闭连接
udpReceive.Close();
udpSend.Close();
//终止线程
thread1.Abort();
}
相关文章推荐
- 利用UDP协议进行图像传输
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- 使用UDP方式进行传输数据
- 利用UDP协议传输图象
- 利用metasploit进行信息收集
- 利用Eclipse-Python简单爬取京东商城书籍信息进行可视化
- 量子通信利用量子力学原理产生密钥对信息进行加密和解密,并采用量子纠缠效应进行密钥分发,被认为是当今最安全的通信系统.有两项特性,一个是不可分割,一个是不可复制
- Android利用Json来进行网络数据传输
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- Android利用Json来进行网络数据传输
- 利用cutetFTP软件在win7和虚拟主机上的linux系统进行文本传输
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
- 利用UDP matlab与VS实时通信传输数据
- 利用rsyslog对非系统日志进行远程传输
- 利用UDP传输结构体数据 structdata over udp
- 黑马程序员--建立一个Udp传输服务进行数据的传输和接收
- 网络编程(UDP传输并将使用多线程进行优化)
- 【Python网络编程】利用Python进行TCP、UDP套接字编程
- 利用ArcGIS与arcpy进行栅格属性信息的提取