UDP通讯
上一篇有说到TCP通讯,这篇来谈谈UDP通讯方式
基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低。至于可靠性,可通过应用层的控制来满足。(不可靠连接)
(1).建立一个套接字(Socket)
(2).绑定服务器端IP地址及端口号--服务器端
(3).通过SendTo()方法向指定主机发送消息(需提供主机IP地址及端口)
(4).通过ReciveFrom()方法接收指定主机发送的消息(需提供主机IP地址及端口)
UDP通讯方式:建立Socket、绑定IP与端口、发送/接收、结束;
通讯实例
UDP服务器端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading; namespace TcpServerConsoleApp
{
public class UdpServerApp
{
UdpClient _udpc;//UDP客服端
public IPEndPoint _Ipdp; public UdpServerApp()
{
_Ipdp = new IPEndPoint(IPAddress.Parse("192.168.1.142"), );
_udpc = new UdpClient(_Ipdp);
Thread clientThread = new Thread(ReciveFunc);
clientThread.Start(); } private void ReciveFunc()
{
//_Ipdp = new IPEndPoint(IPAddress.Any, 0);
//Console.WriteLine("接入客服端:{0} {1}", _Ipdp.Address.ToString(), _Ipdp.Port.ToString());
while (true)
{
try
{
byte[] buffer = _udpc.Receive(ref _Ipdp); Console.WriteLine("接收信息:{0}", Encoding.Default.GetString(buffer));
}
catch
{ }
}
} public void Sendmsg(string msg)
{
byte[] buf = Encoding.Default.GetBytes(msg);
_udpc.Send(buf, buf.Length, _Ipdp);
} }
}
DUP客服端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading; namespace TcpClientConsolApp
{
public class UdpClientApp
{
UdpClient _udpc;//UDP客服端 public UdpClientApp()
{
_udpc = new UdpClient();
Thread clientThread = new Thread(ReciveFunc);
clientThread.Start(); } private void ReciveFunc()
{
IPEndPoint _Ipdp = new IPEndPoint(IPAddress.Any, );
//Console.WriteLine("接入客服端:{0} {1}", _Ipdp.Address.ToString(), _Ipdp.Port.ToString());
while (true)
{
try
{
byte[] buffer = _udpc.Receive(ref _Ipdp); Console.WriteLine("接收信息:{0}", Encoding.Default.GetString(buffer));
}
catch
{ }
}
} public void Sendmsg(string msg)
{
IPEndPoint servipdt = new IPEndPoint(IPAddress.Parse("192.168.1.142"), );
byte[] buf = Encoding.Default.GetBytes(msg);
_udpc.Send(buf, buf.Length, servipdt);
} }
}
从上面对比可以看出服务端与客服端的代码大致相同。
UDP通讯的更多相关文章
- UDP通讯程序设计
UDP通讯程序设计 一.函数化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据-------->recvfrom 发送 ...
- C#中的TCP通讯与UDP通讯
最近做了一个项目,主要是给Unity3D和实时数据库做通讯接口.虽然方案一直在变:从开始的UDP通讯变为TCP通讯,然后再变化为UDP通讯;然后通讯的对象又发生改变,由与数据库的驱动进行通讯(主动推送 ...
- LWIP裸机环境下实现TCP与UDP通讯
前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码 #ifndef __TCP_CLIENT_H_ #define __TCP_ ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- LWIP裸机环境下实现TCP与UDP通讯(转)
源: LWIP裸机环境下实现TCP与UDP通讯
- java基础55 UDP通讯协议和TCP通讯协议
本文知识点(目录): 1.概述 2.UDP通讯协议 3.TCPP通讯协议 1.概述 1.在java中网络通讯作为Socket(插座)通讯,要求两台都必须安装socket. 2.不同的 ...
- QUdpSocket-Qt使用Udp通讯实现服务端和客户端
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QUdpSocket-Qt使用Udp通讯实现服务端和客户端 本文地址:https:// ...
- UDP通讯模型简单示例
1. UDP通讯模型 2. 服务器端 ① 创建一个socket,用函数socket() ② 绑定IP地址.端口等信息到socket上,用函数bind() ③ 循环接收数据,用函数recvfrom() ...
- python网络编程:socket半连接池、UDP通讯模板
一.TCP半连接池原理 二.UDP通讯 三.UDP聊天 四.UDP聊天2 五.UDP会粘包吗 六.UDP总结 七.UDP与TCP对比 一.TCP半连接池原理 客户端 import socket cli ...
随机推荐
- JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
referenc:https://blog.csdn.net/clementad/article/details/42042111 下面介绍几种常用的定时器及其实现方法: 第一种:Timer和Time ...
- linux rz sz 的安装
先wget获取包wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz然后解压tar zxvf rzsz-3.48.tar.gz进入目录c ...
- typedef用法和与define的区别
typedef用来声明一个别名,typedef后面的语法,是一个声明.本来笔者以为这里不会产生什么误解的,但结果却出乎意料,产生误解的人不在少数.罪魁祸首又是那些害人的教材.在这些教材中介绍typed ...
- Redis Set命令
[Redis Set命令] SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值 value 关联到 key . 如果 key 已经持有 ...
- java线程池相关接口Executor和ExecutorService
在线程池的api中,Executor接口是最上层的接口,内部只有一个方法.如下: public interface Executor { void execute(Runnable command); ...
- NPOI工具类
NPOI调用方法 DataTable dt = new DataTable(); Dictionary<string, string> header = new Dictionary< ...
- Unity3D 游戏在 iOS 上因为 trampolines 闪退的原因与解决办法
崩溃的情况 进入游戏一会儿,神马都不要做,双手离开手机,盯着屏幕看吧,游戏会定时从服务器那儿读取一些数据,时间一长,闪退了.尼玛问题是神马呢?完全没有头绪,不过大体猜测是因为网络请求导致的,那么好,先 ...
- sql server 日期转换
一.时间函数 在使用存储过程,sql函数的时候,会遇到一些对时间的处理.比如时间的获取与加减.这里就用到了sql自带的时间函数.下面我列出这些函数,方便日后记忆,使用. --getdate 获取当前时 ...
- zookeeper的ZAB协议
ZAB协议概述 ZooKeeper并没有完全采用Paxos算法,而是使用了一种称为ZooKeeper Atomic Broadcast(ZAB,zookeeper原子消息广播协议)的协议作为其数据一致 ...
- rsync同步常用命令[转载]
转载:http://blog.csdn.net/niushuai666/article/details/16880061 如果你是一位运维工程师,你很可能会面对几十台.几百台甚至上千台服务器,除了批量 ...