(转)winform下UPD通信的简单应用
本文转载自: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通信的简单应用的更多相关文章
- (转)winform下TCP通信的简单应用
本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557064 先看效果图: TCP比较繁琐的就是三次握手定理,每次再发送数据前 ...
- 分享在winform下实现模块化插件编程
其实很早之前我就已经了解了在winform下实现插件编程,原理很简单,主要实现思路就是:先定一个插件接口作为插件样式及功能的约定,然后具体的插件就去实现这个插件接口,最后宿主(应用程序本身)就利用反射 ...
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
- 分享在winform下实现模块化插件编程-优化版
上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...
- 分享在winform下实现左右布局多窗口界面-续篇
之前的这篇文章<分享在winform下实现左右布局多窗口界面>已经实现了左右布局多窗口界面,今天本来是研究基于winform的插件编程,没想到顺便又找到了另一种实现方案,这种实现方案更简单 ...
- 分享在winform下实现左右布局多窗口界面
在web页面上我们可以通过frameset,iframe嵌套框架很容易实现各种导航+内容的布局界面,而在winform.WPF中实现其实也很容易,我这里就分享一个:在winform下实现左右布局多窗口 ...
- winform下的智能提示框
winform下的智能提示框 最近在搞winform的程序,接触到有些可能以后还会用到的功能,所以写到博客园里去,第一可以加深自己的印象,第二可以在以后再遇到同样问题的时候忘记了可以马上回来看看,第三 ...
- linux下串口通信与管理
linux下的串口与windows有一些区别,下面将介绍一下linux下串口通信管理 查看是否支持USB串口: #lsmod | grep usbserial 如果没有信息:sudo apt-get ...
- 在winform下实现左右布局多窗口界面的方法(二)
这篇文章主要介绍了在winform下实现左右布局多窗口界面的方法之续篇 的相关资料,需要的朋友可以参考下 在上篇文章在winform下实现左右布局多窗口界面的方法(一)已经实现了左右布局多窗口界面,今 ...
随机推荐
- JNI_Z_05_方法的操作(没有String类型的参数)
1.步骤: (1).获取 jclass (2).获取 method的id (3).调用 method ZC: 貌似 JNI里面 操作 类的方法,完全是 无视 访问权限的... 然而 static的方法 ...
- 实现QQ抽屉效果
代码: #coding: utf-8 from PyQt4.QtCore import * from PyQt4.QtGui import * import sys QTextCodec.setCod ...
- 【lightoj-1039】A Toy Company(BFS)
The toy company "Babies Toys" has hired you to help develop educational toys. The current ...
- SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...
- Spring Batch教程
Spring Batch系列总括 : http://www.cnblogs.com/gulvzhe/archive/2011/12/20/2295090.html
- JavaScript JSON.parse()和JSON.stringify()
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
- Win7系统64位环境下使用Apache——Apache2.4整合Tomcat与mod_jk
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/70398091 本文出自[我是干勾鱼的博客] 之前的几篇文章: Win7系统64位 ...
- js实现城市二级联动列表
这个是一个同事写的,我看着有用,就cv下来了. 程序功能主要逻辑是: 1.当一级标签市显示默认状态 '-请选择-'时,二级标签要隐藏 2.一级标签选中城市时,二级标签显示在页面,并列出响应市区 3.当 ...
- php语法笔记
1. php中设置页面的编码方式: header(“content-type:text/html;charset=utf-8”); 2. 数据类型 布尔类型:Boolean/bool:true.f ...
- 前端之css样式01
选择器,css文本属性 CSS语法: 选择器 {属性1: 值1; 属性2: 值2} CSS放置的位置: 1. 直接写在标签里面,通过style属性来设置CSS样式 2. 在head标签里面通过styl ...