c# UDP
2016-07-08 11:30
405 查看
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 WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Socket s; EndPoint x; private void button1_Click(object sender, EventArgs e) { //服务器 string ip = this.textBox1.Text; int p = int.Parse(this.textBox2.Text); IPAddress ips = IPAddress.Parse(ip); IPEndPoint ps = new IPEndPoint(ips, p); s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Udp); s.Bind(ps); //客户机IP string ip1 = this.textBox4.Text; int p1 = int.Parse(this.textBox3.Text); int px = int.Parse(this.textBox2.Text); IPAddress ipsx = IPAddress.Parse(ip1); IPEndPoint psx = new IPEndPoint(ipsx, p1); x = (EndPoint)psx; //使用线程处理数据接受 //接受UDP数据报,引用参数X获得源地址 Thread th = new Thread(new ThreadStart(Receive)); th.IsBackground = true; th.Start(); } public delegate void myInvoke(string s); void Receive() { string msg; byte[] data = new byte[1024]; myInvoke my = new myInvoke(showmsg); while (true) { if (s == null || s.Available < 1) { Thread.Sleep(200); continue; } //跨线程调用控件 //接受UDP数据包,引用参数X源地址 int re=s.ReceiveFrom(data,ref x); msg=Encoding.Default.GetString(data,0,re); this.textBox5.BeginInvoke(my,new object[] {x.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); s.SendTo(data,data.Length,SocketFlags.None,x); } } }
相关文章推荐
- C#以中心点经纬度和范围半径为基准计算矩形四个顶点的经纬度
- C# Winform 实现屏蔽键盘的win和alt+F4的实现代码
- C#获取本机IP搜集整理7种方法
- c#上传图片的代码
- C#学习篇(五)克隆
- C#中的@符号用法
- C# 实现是否设置指定程序为开机启动程序
- C#工具类(包含获取枚举描述方法)
- C#之类型转换
- 弹出MessageBox并延迟一段时间后自动关闭的一种方法
- C#基础
- C# 判断字符串为空的几种方法 之优略选择
- 序列不包含任何元素,c#,支付宝
- C#任意变换图像大小
- C#制作、打包、签名、发布Activex全过程
- C#生成缩略图
- Visual Studio 2010 打包C#项目程序
- C# 对键值对的键或者值进行排序
- C# DataGridView自动换行
- C# 将 txt 文件拖拽到 textbox时 textbox 读取txt中文本内容