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.Net;
using System.Threading; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
IPAddress[] ips = Dns.GetHostAddresses("");
this.textBox1.Text = ips[0].ToString();
this.textBox4.Text = ips[0].ToString(); } private void textBox1_TextChanged(object sender, EventArgs e)
{
} private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
Socket mySocket;
IPEndPoint Remoteendpoint;
EndPoint RemotePoint;
private void button1_Click(object sender, EventArgs e)
{
mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//服务器
IPAddress ipadd = IPAddress.Parse(this.textBox1.Text);
IPEndPoint ipend = new IPEndPoint(ipadd, int.Parse(this.textBox2.Text));
mySocket.Bind(ipend); //客户机
IPAddress ipRemote = IPAddress.Parse(this.textBox4.Text);
Remoteendpoint = new IPEndPoint(ipadd, int.Parse(this.textBox3.Text));
RemotePoint=(EndPoint)Remoteendpoint; //使用线程处理数据接收 Thread thread = new Thread(new ThreadStart(Receive));
thread.IsBackground = true;
thread.Start(); }
public delegate void MyInvoke(string strRecv) ;
void Receive()
{
//接受数据处理线程
string msg;
byte[] data = new byte[1024];
MyInvoke myI = new MyInvoke(ShowMsg);
while (true)
{
if (mySocket==null||mySocket.Available<1)
{
Thread.Sleep(200);
continue;
}
//跨线程调用控件
//接受udp数据报,引用参数RemotePoint获得源地址
int rlen = mySocket.ReceiveFrom(data, ref RemotePoint);
msg = Encoding.Default.GetString(data, 0, rlen);
this.textBox5.BeginInvoke(myI, new object[] { RemotePoint.ToString() + ":" + msg }); }
}
void ShowMsg(string msg)
{
//接受数据显示
this.textBox5.AppendText(msg+"\r\n");
} private void button2_Click(object sender, EventArgs e)
{
string msg;
msg=this.textBox6.Text;
byte [] data= Encoding.Default.GetBytes(msg);
mySocket.SendTo(data,data.Length,SocketFlags.None,RemotePoint);
}
}
}

  

c# UDP通信 列子的更多相关文章

  1. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  2. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  3. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  4. 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  5. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  6. HP-SOCKET TCP/UDP通信框架库解析

    项目概述: HP-SOCKET是一套通用TCP/UDP通信框架,包括服务器.客户端.Agent组件:其目标是提供高性能.通用性.简易性.可扩展.可定制: 鉴于此,其仅实现基本的通用框架通信.数据收发功 ...

  7. .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)

    上一篇中说到了“泵”在编程中的作用以及一些具体用处,但没有实际demo,可能不好理解,这篇文章我分享一个UDP通信的demo,大概实现了类似“飞鸽传书”在局域网中文本消息和文件传输的功能.功能不全也不 ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

随机推荐

  1. JQuery-UI Dialog下使用服务器端按钮失效

    目标:点按钮弹出div层,选择数据后自动隐藏div,将所选数据赋值到窗体. <div id="divWinPop"> //里面是要实现弹出框的代码,包括翻页.查找等. ...

  2. MS SQL SERVER 锁研究记录

    首先创建一直数据表 ChenJi,有如下字段: ID, DanWeiID,  Name,  ChenJi CREATE TABLE [dbo].[ChenJi]( [ID] [int] NOT NUL ...

  3. Sublime 不自动打开上次未关闭的文件 设置方法

    { "font_size": 17, "hot_exit": false, "remember_open_files": false, &q ...

  4. 20145207 《Java程序设计》第8周学习总结

    前言: 这两天电路焊小车,有意思归有意思,确实挺忙的.博客到现在才写.执勤看的东西忘得好快呀,莫名的记不住.不说废话了,开始. 教材学习内容总结: 一.NIO和NIO2 1.NIO的定义 InputS ...

  5. SNMP ber 编码

    5.1 标识域(tag)的编码规则 标识域指明数据的类型,占用1个字节,常见的类型有:BOOL(0x01);INT(0x02);OCTSTR(0x04);NULL(0x05);OBJID(0x06); ...

  6. 从C#的Singleton设计模式

    近来,我在学习如何在C#语言中使用设计模式中读到一些资料,其中有关Singleton设计模式引起了我的注意. 学过设计模式的开发者都知道Singleton模式.我想简要地解释一下这个设计模式是为那些尚 ...

  7. 14---Net基础加强

    更新中,敬请期待............ 复习-匿名类型 Xml介绍

  8. Oracle数据类型总结

    一 字符串类型 1.1:CHAR类型 CHAR(size [BYTE | CHAR]) CHAR类型,定长字符串,会用空格填充来达到其最大长度.非NULL的CHAR(12)总是包含12字节信息.CHA ...

  9. 显示刚刚添加的最后一条数据,access,选择语句,select

    显示刚刚添加的最后一条数据,access,选择语句,select select top 1  * from s1 order by id desc

  10. (一)MapReduce篇之InputFormat,InputSplit,RecordReader(转)

    平时我们写MapReduce程序的时候,在设置输入格式的时候,总会调用形如job.setInputFormatClass(KeyValueTextInputFormat.class);来保证输入文件按 ...