c# 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.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通信 列子的更多相关文章
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- HP-SOCKET TCP/UDP通信框架库解析
项目概述: HP-SOCKET是一套通用TCP/UDP通信框架,包括服务器.客户端.Agent组件:其目标是提供高性能.通用性.简易性.可扩展.可定制: 鉴于此,其仅实现基本的通用框架通信.数据收发功 ...
- .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)
上一篇中说到了“泵”在编程中的作用以及一些具体用处,但没有实际demo,可能不好理解,这篇文章我分享一个UDP通信的demo,大概实现了类似“飞鸽传书”在局域网中文本消息和文件传输的功能.功能不全也不 ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
随机推荐
- bash 截取字符串
转载自http://blog.chinaunix.net/uid-1757778-id-3162034.html 命令的2种替换形式 $()和 ``示例:截断字符串 a): #截取文件名称 ...
- 使用MJExtension中要注意的地方
MJExtension git地址 https://github.com/CoderMJLee/MJExtension#JSON_Model Model contains model-array[模 ...
- 20145207《Java程序设计》第6周学习总结
教材学习内容总结 一.输入/输出 InputStream与Outputstream • 串流设计的概念 从应用程序角度看,将数据从来源取出,可以使用输入串流,将数据写入目的地,可以使用输出串流:在Ja ...
- [转] linux中常用的命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- Python学习总结4:字符串常量与操作汇总
参考博客:http://www.cnblogs.com/Camilo/archive/2013/09/21/3332267.html http://www.cnblogs.com/SunWentao/ ...
- BZOJ K大数查询(分治)(Zjoi2013)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3110 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b ...
- demo14
/Users/alamps/AndroidStudioProjects/Demo12SimpleAdapter/Demo12SimpleAdapter/src/main/res/layout/tabl ...
- linux时钟同步
方法1. ntpdate ip 搜索时钟服务器.找一个靠谱的时钟ip执行以上命令即可 可以把这个加入crontab中定时同步.# /usr/sbin/ntpdate 210.72.145.44 > ...
- 夺命雷公狗—angularjs—7—多条数据的遍历
我们这里可以来玩玩angular的块级的遍历方法了,本热感觉有点像是PHP中的以前刚入门时候的遍历方法,嘻嘻,, 不过要注意的是中间的双层汉堡{{}} 里面只能放表达式,不能放判断语句 <!do ...
- Verilog中的specify block和timing check
在ASIC设计中,有两种HDL construct来描述delay信息: 1)Distributed delays:通过specify event经过gates和nets的time,来描述delay; ...