UDP SOCKET网络通信 C#
接收端
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 Thread UdpThread; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string strHostIP = ""; IPHostEntry oIPHost = Dns.GetHostEntry(Environment.MachineName); if (oIPHost.AddressList.Length > ) strHostIP = oIPHost.AddressList[].ToString(); this.txtIP.Text = strHostIP; if (UdpThread != null) { UdpThread.Abort(); Thread.Sleep(TimeSpan.FromMilliseconds(500d)); } try { 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() { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(IPAddress.Any, int.Parse(txtPort.Text));//接收广播信息,端口是(因为是广播端口是) socket.Bind(iep); EndPoint ep = (EndPoint)iep; Byte[] bytes = new byte[]; while (Thread.CurrentThread.ThreadState.Equals(ThreadState.Running)) { int message = socket.ReceiveFrom(bytes, ref ep);//接收发送的信息 string bufs = Encoding.UTF8.GetString(bytes); txtMessage.Text += (ep as IPEndPoint).Address.ToString() + "说:" +Environment.NewLine; txtMessage.Text += bufs + Environment.NewLine + Environment.NewLine; } txtMessage.Text += "结束..." + (char); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { UdpThread.Abort(); } catch { } } } }
发送端
using System; using System.Net; 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) { Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp); IPEndPoint iep1 = new IPEndPoint(IPAddress.Parse(txtIP.Text),int.Parse(txtPort.Text));//进行地址的广播,广播端口 byte[] data = Encoding.ASCII.GetBytes(txtMessage.Text); sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, ); sock.SendTo(data, iep1);//发送字符 sock.Close(); } } }
UDP SOCKET网络通信 C#的更多相关文章
- Linux编程之UDP SOCKET全攻略
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...
- TCP&UDP&Socket讲解(上)
这两天我将整理TCP&UDP&Socket,大约花大家10-15分钟之间,希望本篇文章让大家对TCP使用的理解提高一个层次. 建议大家拿出纸和笔,画一下!!! 一.TCP 1. TCP ...
- Socket 网络通信
Socket 网络通信 1.OSI (Open System Interconnect Reference Model)(开放系统互联参考模型) 从下低到高 :物理层.数据链路层.网络层.传输层.会话 ...
- 【转】Linux编程之UDP SOCKET全攻略
转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...
- TCP/UDP,SOCKET,HTTP,FTP 简析
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- Socket网络通信之NIO
Socket网络通信之NIO NIO:new io ,java1.4开始推出的可非阻塞IO. java.nio 包,可解决BIO阻塞的不足 但比BIO学习.使用复杂. 可以以阻塞.非阻塞两种方式工作. ...
- Socket网络通信之BIO
Socket网络通信之BIO 如果要让两台计算机实现通信,需要的条件:ip,port,协议. 目前我们用的最多的就是TCP/IP协议和UDP协议.TCP三次握手,所以比较慢,且安全:UDP速度快,但是 ...
- TCP UDP socket http webSocket 之间的关系
---恢复内容开始--- OSI&TCP/IP模型 要弄清tcp udp socket http websocket之间的关系,首先要知道经典的OSI七层模型,与之对应的是TCP/IP的四层模 ...
- Windows UDP socket recvfrom返回10054错误的解决办法
现象: 在Windows 7系统上,A使用UDP socket,调用sendto函数向一个目标地址B发送数据,但是目标地址B没有接收数据,如果A此时立即调用recvfrom试图接收目标地址B发回的数据 ...
随机推荐
- android Baseadapter 和 ViewHolder的使用
昨晚学习了徐大神的关于BaseAdapter的讲解,让我受益匪浅特来博客留下印记 说到baseadapter大家一定都不陌生,下面这张图就展示了数据.listview.baseadapter 之间的关 ...
- Day Six(Beta)
站立式会议 站立式会议内容总结 331 今天:完成闹钟功能,远程数据库采用bmob的解决方案,应用初始化bmob 遇到问题:闹钟没有取消提醒 以及多次设置提醒的问题 明天:修改闹钟问题,完成文件下载( ...
- 如何调试js文件
来源于:http://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code http://stackoverflo ...
- 那些用JavaScript写的操作系统
之前有人说过Chrome是新的C语言运行环境(Chrome Is The New C Runtime) ,不过笔者更倾向于Web是新的C语言运行环境,而且这种技术绝对没有版权问题,也绝不会被一家公司垄 ...
- 本机ubuntu链接阿里云服务器(也是ubuntu)
首先在本机安装ssh工具,并修改配置文件(参考:http://www.cnblogs.com/herd/p/5009067.html) 第一步:ssh 100.121.156.32(即:服务器的ip地 ...
- RAP在centos上的部署
在centos7上部署RAP(非官方) 作者批注:该部署文档为网友贡献,仅供参考.war请参考主页README.md下载最新版本哟~~~ 感谢热情网友的Wiki整理!万分感谢! 系统: centos7 ...
- 状态压缩 poj 3254
n * m 个玉米 n*m个数字 0 或者1 1可以种玉米 0 不能 种玉米不能相邻 计算有几种 种的方法 #include<stdio.h> #include<algorithm ...
- 如何让div显示在embed,flash元素之上
Z-INDEX属性只对块状元素有效,对于flash是没用的,那么我们怎么处理这个问题呢,问大家介绍两种很简便的方法 方法一 把<embed>标记写在<object>之内 方法二 ...
- java-读取类中的属性名称和值
方法 /** * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类) * @param f:读取属性类(如果取父类的,则这里 ...
- iOS 蓝牙开发(二)iOS 连接外设的代码实现(转)
转载自:http://www.cocoachina.com/ios/20150917/13456.html 原文作者:刘彦玮 上一篇文章介 绍了蓝牙的技术知识,这里我们具体说明一下中心模式的应用场景. ...