(转)winform下UPD通信的简单应用
2024-09-28 16:19:45
本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557046
先看效果图:
使用UDP的好处就是不需要三次握手,但是缺点就是存在安全隐患。
QQ就是利用UDP来传输数据的。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Threading;
using System.Net;
using System.Net.Sockets; namespace UDP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//启动服务端
UdpClient udpServer;
delegate void SetTextCallBack(string text);
private void button1_Click(object sender, EventArgs e)
{
udpServer = new UdpClient();
label2.Text = "服务器已启动..";
button1.Enabled = false;
Thread t = new Thread(new ThreadStart(ReceiveMsg));
t.IsBackground = true;
t.Start(); } public void ReceiveMsg()
{
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, );
while (true)
{
byte[] buffer = udpServer.Receive(ref ipe);
string msg = Encoding.Unicode.GetString(buffer);
SetText(msg);
} }
public void SetText(string text)
{
if (text == "")
{
if (richTextBox1.InvokeRequired)
{
SetTextCallBack st = new SetTextCallBack(SetText);
this.Invoke(st, new object[] { text });
}
else
{
richTextBox1.Text +="小万 " +DateTime.Now.ToString() + "\n" + " " + "\n";
}
}
else
{ if (richTextBox1.InvokeRequired)
{
SetTextCallBack st = new SetTextCallBack(SetText);
this.Invoke(st, new object[] { text });
}
else
{
richTextBox1.Text +="小万 " +DateTime.Now.ToString() + "\n" + text + "\n";
} }
}
//客户端
private void button2_Click(object sender, EventArgs e)
{
if (button1.Enabled ==true)
{
MessageBox.Show("服务端未开启!");
}
else
{
UdpClient client = new UdpClient();
string ip = textBox1.Text;
string msg = richTextBox2.Text;
byte[] buffer = Encoding.Unicode.GetBytes(msg);
IPEndPoint ips = new IPEndPoint(IPAddress.Parse(ip), );
client.Send(buffer, buffer.Length, ips);
client.Close();
MessageBox.Show("发送成功!");
} } }
}
自己理解下。
最新文章
- 使用D3制作图表(1)--画布绘制
- paip.java c# .net php python调用c++ c dll so windows api 总结
- google登录不了解决喽
- iPhone批量删除照片/视频最好用的方法
- 最大子段和问题,最大子矩阵和问题,最大m子段和问题
- poj 3026 Borg Maze 最小生成树 + 广搜
- 利用正则表达式解析URL
- 2015 NOIP day2 t2 信息传递 tarjan
- 20个非常绚丽的 CSS3 特性应用演示
- Struts2之Action接收请求参数和拦截器
- roslaunch &; gdb 调试指南(待补充)
- swift 学习- 20 -- 错误处理
- 使用diskpart命令格式化U盘
- 程序重启RocketMQ消息重复消费
- phpstudy2018配置站点后500错误问题
- [Leetcode]134.加油站
- 12.22日wagas学习笔记
- Web知识简易介绍及HTTP知识总结
- python2 - 列表
- 修改CFileDialog的标题