本文转载自: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("发送成功!");
} } }
}

自己理解下。

(转)winform下UPD通信的简单应用的更多相关文章

  1. (转)winform下TCP通信的简单应用

    本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557064 先看效果图: TCP比较繁琐的就是三次握手定理,每次再发送数据前 ...

  2. 分享在winform下实现模块化插件编程

    其实很早之前我就已经了解了在winform下实现插件编程,原理很简单,主要实现思路就是:先定一个插件接口作为插件样式及功能的约定,然后具体的插件就去实现这个插件接口,最后宿主(应用程序本身)就利用反射 ...

  3. Winform下CefSharp的引用、配置、实例与报错排除(源码)

    Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...

  4. 分享在winform下实现模块化插件编程-优化版

    上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...

  5. 分享在winform下实现左右布局多窗口界面-续篇

    之前的这篇文章<分享在winform下实现左右布局多窗口界面>已经实现了左右布局多窗口界面,今天本来是研究基于winform的插件编程,没想到顺便又找到了另一种实现方案,这种实现方案更简单 ...

  6. 分享在winform下实现左右布局多窗口界面

    在web页面上我们可以通过frameset,iframe嵌套框架很容易实现各种导航+内容的布局界面,而在winform.WPF中实现其实也很容易,我这里就分享一个:在winform下实现左右布局多窗口 ...

  7. winform下的智能提示框

    winform下的智能提示框 最近在搞winform的程序,接触到有些可能以后还会用到的功能,所以写到博客园里去,第一可以加深自己的印象,第二可以在以后再遇到同样问题的时候忘记了可以马上回来看看,第三 ...

  8. linux下串口通信与管理

    linux下的串口与windows有一些区别,下面将介绍一下linux下串口通信管理 查看是否支持USB串口: #lsmod | grep usbserial 如果没有信息:sudo apt-get ...

  9. 在winform下实现左右布局多窗口界面的方法(二)

    这篇文章主要介绍了在winform下实现左右布局多窗口界面的方法之续篇 的相关资料,需要的朋友可以参考下 在上篇文章在winform下实现左右布局多窗口界面的方法(一)已经实现了左右布局多窗口界面,今 ...

随机推荐

  1. Centos6.5 安装gitlab 并使用自带的nginx

    Centos6.5 安装gitlab 并使用自带的nginx 1.安装依赖 yum -y install policycoreutils openssh-server openssh-clients ...

  2. js关闭浏览器窗口及检查浏览器关闭事件

    js关闭浏览器窗口,不弹出提示框.支持ie6+,火狐,谷歌等浏览器,下面以一个示例为大家详细介绍下具体的实现方法,感兴趣的朋友可以参考下   js关闭浏览器窗口 js关闭浏览器窗口,不弹出提示框.支持 ...

  3. 第11章:最长公共子序列(LCS:Longest Common Subsequence)

    方法:动态规划 <算法导论>P208 最优子结构 + 重叠子问题 设xi,yi,为前i个数(前缀) 设c[i,j]为xi,yi的LCS的长度 c[i,j] = 0 (i ==0 || j ...

  4. yii2:doajax(post)会报500错误

    yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...

  5. bash echo color

    原文:https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux $ ; i ...

  6. Pro C/C++ 编程中值得注意的问题

    1.宿主字符串存储Oracle自动补零问题. EXEC SQL BEGIN DECLARE SECTION; unsigned char liId[25]; EXEC SQL END DECLARE ...

  7. 【lightoj-1063】Ant Hills(求割点)

    求割点模板题 #include <bits/stdc++.h> using namespace std; const int N = 10004; int dfn[N], low[N]; ...

  8. docker-web管理工具实验

    工具名称 共有功能 备注 UCP   官方.收费 portainer 镜像库 容器管理   rancher   shipyard   kubernetes     (上诉部署都基于linux) UCP ...

  9. 照相、从相册上取照片、播放音频、播放本地视频、播放网络视频、MPMoviePlayerController

    一.照相.从相册上去照片 1. 先判断是否支持照相功能 *判断当前设备是否支持照相功能,支持返回YES 否则返回NO 注意:模拟器不支持照相功能 把握一个原则只要是物理硬件相关的功能模拟器都不支持 例 ...

  10. Android 系统信息的获取

    Android 系统信息的获取 一.内存(ram): 1.android 的内存大小信息存放在系统的 /proc/meminfo 文件里面,通过adb shell 进入 手机目录后,使用 cat /p ...