接收端

 
using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Threading;

using System.Windows.Forms;

namespace UDPReceiveTest

{

    public partial class Form1 : Form

    {

        public UdpClient udpClient;

        public Thread UdpThread;

        public Form1()

        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            if (UdpThread != null)

            {

                UdpThread.Abort();

                Thread.Sleep(TimeSpan.FromMilliseconds(500d));

            }

            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

            if (udpClient != null)

            {

                UdpThread.Abort();

                Thread.Sleep(TimeSpan.FromMilliseconds(500d));

                udpClient.Close();

            }

            try

            {

                udpClient = new UdpClient(int.Parse(txtPort.Text));

                UdpThread = new Thread(new ThreadStart(UdpReciveThread));

                UdpThread.Start();

            }

            catch (Exception y)

            {

                MessageBox.Show(this, y.Message, "Error", MessageBoxButtons.OK,MessageBoxIcon.Error);

                this.Dispose(true);

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            txtMessage.Text = string.Empty;

        }

        delegate void SetTextCallback(IPEndPoint remoteHost, byte[] buf, string bufs);

        //接收数据线程

        void UdpReciveThread()

        {

            IPHostEntry oIPHost = Dns.GetHostEntry(Environment.MachineName);

            IPEndPoint remoteHost = new IPEndPoint(IPAddress.Any, );

            while (udpClient != null &&Thread.CurrentThread.ThreadState.Equals(ThreadState.Running))

            {

                try

                {

                    byte[] buf = udpClient.Receive(ref remoteHost);

                    string bufs = Encoding.UTF8.GetString(buf);

                    txtMessage.Text += remoteHost.Address.ToString() + "说:" +Environment.NewLine;

                    txtMessage.Text += bufs + Environment.NewLine;

                }

                catch (Exception y)

                {

                }

            }

            txtMessage.Text += "结束..." + (char);

        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)

        {

            try

            {

                udpClient.Close();

                UdpThread.Abort();

            }

            catch

            {

            }

        }

    }

}

发送端

using System;

using System.Net.Sockets;

using System.Text;

using System.Windows.Forms;

namespace UDPSendTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void btnSend_Click(object sender, EventArgs e)

        {

             try

            {

                UdpClient uc = new UdpClient(txtIP.Text, int.Parse(txtPort.Text));

                byte[] sendbuf = Encoding.UTF8.GetBytes(txtMessage.Text);

                uc.Send(sendbuf, sendbuf.Length);

            }

            catch (Exception y)

            {

                MessageBox.Show(this, y.Message, "发送失败", MessageBoxButtons.OK,MessageBoxIcon.Hand);

            }

        }

    }

}

UDP 网络通信 C#的更多相关文章

  1. 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例

    前言 自著名华人物理学家高锟先生提出"光传输理论",实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程.本世纪初期,ASON/OADM ...

  2. Java中的TCP/UDP网络通信编程

    127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户 ...

  3. Java TCP/UDP网络通信编程

    本文转自:http://www.cnblogs.com/cdtarena/archive/2013/04/10/3012282.html 网络应用中基本上都是TCP(Transmission Cont ...

  4. TCP、UDP网络通信

    IP地址和端口号 端口号是用两个字节(16位的二进制数)表示的,它的取值范围是0~65535,其中,0~1023之间的端口号用于一些知名的网络服务和应用, 用户的普通应用程序需要使用1024以上的端口 ...

  5. Linux C/C++ UDP 网络通信

    昨晚 Vv 想让我给她讲讲网络编程,于是我就傻乎乎的带她入了门... 以下内容为讲课时制作的笔记- 1. socket() 函数 1.1 头文件 #include<sys/socket.h> ...

  6. UDP网络通信OSC 协议

    使用方法 ofxOscMessage mesg; mesg.setAddress("m"); mesg.addIntArg(); mesg.addIntArg(); mesg.ad ...

  7. UDP网络通信

    网络概念 一.目的 二.IP地址 三.端口 一.目的 目的 : 主要用于让两个用户端的服务器或者客户端,可以实现资源共享和信息传递 二.IP地址 1.作用 : 计算机网络中一台计算机的标识 2.种类 ...

  8. Java 网络通信(TCP/UDP)

    1.InetAdress类 与  Socket类  >InetAdress  >Socket 2.TCP/IP协议簇  客户端: 创建 Socket:根据指定服务端的 IP 地址或端口号构 ...

  9. Linux socket网络编程基础 tcp和udp

    Socket TCP网络通信编程 首先,服务器端需要做以下准备工作: (1)调用socket()函数.建立socket对象,指定通信协议. (2)调用bind()函数.将创建的socket对象与当前主 ...

随机推荐

  1. 给菜单加个优雅的unselect事件

    先上图,说场景 假设默认选中的是item1,我现在选中item3了,有时候需要对item1做一些别的处理.常见的做法是,切换选中状态前找到当前选中(item1),或者每次选中后选中的项记录在中间变量. ...

  2. 1008win7与虚拟机中的linux共享文件的(详细)方法

    转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...

  3. 第七章 java基础类库

    1. 日期时间: 用Calendar类. 2. 分隔符:空格.tab.回车. 3. Scanner:读取键盘输入.读取文件. 4. 系统类: System  Runtime. 5. 所有的java类都 ...

  4. 在Word2013中多次应用格式刷

    顾名思义,格式刷是为了方便需要跨区域操作时候,能快速的应用格式到相应文本.那么怎么使用word进行格式刷的多次使用呢.我们先来看单次的,这个比较容易,只要在先需要的格式单击一次格式刷,再到需要的文本执 ...

  5. 在Windows .NET平台下使用Memcached

    网上关于Memcached的文章很多,但据我观察,大多是互相转载或者抄袭的,千篇一律.有些则是直接整理的一些超链接然后贴出来.那些超链接笔者大概都进去看了,其实关于Memcached的中文的技术文章, ...

  6. Entity Framework Code First (五)Fluent API - 配置关系

    上一篇文章我们讲解了如何用 Fluent API 来配置/映射属性和类型,本文将把重点放在其是如何配置关系的. 文中所使用代码如下 public class Student { public int ...

  7. php获取checkbox复选框的内容

    php获取checkbox复选框的内容   由于checkbox属性,所有必须把checkbox复选择框的名字设置为一个如果checkbox[],php才能读取,以数据形式,否则不能正确的读取chec ...

  8. python面向对象

    1.概念 类:(class):具有相同属性和方法的对象的集合.用来定义该集合中每个对象所共有的属性和方法.对象是类的实例. 方法:类中定义的函数. 实例化:创建一个类的实例,类的具体对象. 对象:通过 ...

  9. Hive 一些便捷小查询

    show create table 表名; -- 可以查看表的DDL语句 describe 表名; -- 查看表的字段信息 explain dependency select count(1) fro ...

  10. python 学习笔记12(序列常用方法总结)

    http://www.cnblogs.com/vamei/archive/2012/07/19/2599940.html 多回想!!! 1. 序列(list,tuple,string) len(s) ...