通信

TCP/UDP协议

旧时模样 提交于 2020-03-05 09:59:05
1网络通讯协议(java中看到协议就是规则):最广泛的通讯协议是TCP/IP协议 IP地址:就是具体的家庭地址,如到了那个小区几号楼但是没有门牌号; 端口:就是具体到了门牌号;程序中通过IP地址找到计算机,通过端口号找到相应的程序 2.InetAddress:是包装了IP地址的类;方法有: 1.通过IP地址或者主机名获取InetAddress对象;通过这个对象获取Ip和主机名 通过ip地址获取:InetAddress inet=InetAddress.getByName("192.168.1.1"); 通过主机名获取:InetAddress inet=InetAddress.getByName("WRTD"); 获取本机主机的Inet对象:InetAddress inet=InetAddress.getLocalHost(); 3.通过获取的InetAddress对象后再通过InetAddress对象获取Ip地址和主机名 获取IP地址:inet.getHostAddress(); 获取主机名:inet.getHostName(); 4.UDP(重要数据不要用;无连接的通信协议):发送端不会确认是否存在接收端,接收数据后也不 会反馈是否接收到数据 5.UDP:64kb以内的数据可以传输,因为UDP是无连接的传输协议所以传输速度快而且效率高,所以 传输音频/视频

Rabbitmq基本原理

早过忘川 提交于 2020-03-05 06:23:42
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统。业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制,在实际生产中应用相当广泛。本文意在介绍Rabbitmq的基本原理,包括rabbitmq基本框架,概念,通信过程等。 系统架构 Rabbitmq系统最核心的组件是Exchange和Queue,下图是系统简单的示意图。Exchange和Queue是在rabbitmq server(又叫做broker)端,producer和consumer在应用端。 producer&Consumer producer指的是消息生产者,consumer消息的消费者。 Queue 消息队列,提供了FIFO的处理机制,具有缓存消息的能力。rabbitmq中,队列消息可以设置为持久化,临时或者自动删除。 设置为持久化的队列,queue中的消息会在server本地硬盘存储一份,防止系统crash,数据丢失 设置为临时队列,queue中的数据在系统重启之后就会丢失 设置为自动删除的队列,当不存在用户连接到server,队列中的数据会被自动删除

sofa-bolt源码阅读(3)-通信模型

对着背影说爱祢 提交于 2020-03-05 03:44:49
Bolt提供了四种通信模型,分别是 Oneway , Sync , Future , Callback asynchronous 4.1 Oneway oneway单向通话 特点 不关心返回值 发送请求就立即返回 com.alipay.remoting.BaseRemoting#oneway protected void oneway(final Connection conn, final RemotingCommand request) { try { conn.getChannel().writeAndFlush(request).addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture f) throws Exception { if (!f.isSuccess()) { logger.error("Invoke send failed. The address is {}", RemotingUtil.parseRemoteAddress(conn.getChannel()), f.cause()); } } }); } catch (Exception e) { if (null == conn) { logger.error("Conn

java Socket编程

冷暖自知 提交于 2020-03-05 02:41:55
Java中的Socket编程: Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。 TCP和UDP通信 关于socket编程我们有两种通信协议可以进行选择。一种是数据报通信,另一种就是流通信。 数据报通信 数据报通信协议,就是我们常说的UDP(User Data Protocol 用户数据报协议)。UDP是一种无连接的协议,这就意味着我们每次发送数据报时,需要同时发送本机的socket描述符和接收端的socket描述符。因 此,我们在每次通信时都需要发送额外的数据。 流通信 流通信协议,也叫做TCP(Transfer Control Protocol,传输控制协议)。和UDP不同,TCP是一种基于连接的协议。在使用流通信之前,我们必须在通信的一对儿socket之间建立连接。其中一个socket作为服务器进行监听连接请求。另一个则作为客户端进行连接请求。一旦两个socket建立好了连接,他们可以单向或双向进行数据传输。 读到这里,我们多少有这样的疑问,我们进行socket编程使用UDP还是TCP呢。选择基于何种协议的socket编程取决于你的具体的客户端-服务器端程序的应用场景

Socke---转

社会主义新天地 提交于 2020-03-05 02:40:54
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本。当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限。一旦IO操作对象被打开,那么这个用户进程可以对这个对象进行一次或多次的读取或写入操作。Read操作用来从IO操作对象读取数据,并将数据传递给用户进程。Write操作用来将用户进程中的数据传递(写入)到IO操作对象。 当所有的Read和Write操作结束之后,用户进程需要调用Close来通知系统其完成对IO对象的使用。 在Unix开始支持进程间通信(InterProcess Communication,简称IPC)时,IPC的接口就设计得类似文件IO操作接口。在Unix中,一个进程会有一套可以进行读取写入的IO描述符。IO描述符可以是文件,设备或者是通信通道(socket套接字)。一个文件描述符由三部分组成:创建(打开socket),读取写入数据(接受和发送到socket)还有销毁(关闭socket)。 在Unix系统中

Android 子线程间通信

时光总嘲笑我的痴心妄想 提交于 2020-03-05 01:53:18
1.在android中我们平时处理的都是子线程与主线程间的通信,采用的方法是利用android中的消息循环机制,说白了就是利用Handler 而子线程与子线程的通信也可以用到Handler,也可以通过全局变量来进行通信 2.消息循环机制就不说了,由于主线程在应用启动的时候系统就给它生成了Looper , MessageQueue等消息循环的东西,所以每次子线程 可以直接往主线程发送message。而子线程是不会自动生成Looper的,就要调用Looper.prepare();方法来为该子线程生成Looper, 生成后调用Loopre.loop()来启动消息队列,再在子线程中定义自己的Handler,其他子线程可以调用该Handler来进行,子线程间的通信了。 3.示例代码: 子线程一:    1       new Thread(new Runnable() { 2 3 @Override 4 public void run() { 5 String msg; 6 Looper.prepare(); 7 8 childHandler = new Handler() { 9 @Override 10 public void handleMessage(Message msg) { 11 super.handleMessage(msg); 12 13 System.out

java 实现的电话号码查询程序 优化版(课程设计)

試著忘記壹切 提交于 2020-03-05 00:58:04
本程序可查询3位、5位、7位、8位、11位的电话号码,并且能够分辨出其号码是电信、移动、联通、卫星、座机、还有地址、省、区市。这个程序的代码和前几天发的那篇博客,部分代码进行了优化。 号码号段编辑 中国移动号段:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198 中国联通号段:130、131、132、145、155、156、166、176、185、186、196 中国电信号段:133、149、153 、180 、181 、189、173、177、190、191、193、199 中国广电号段:192 虚拟运营商号段: 联通:167、1704、1707、1708、1709、171 电信:162、1700、1701、1702 移动:165、1705、1706 物联网号段: 联通:1400、146 电信:1410 移动:1440、148 卫星电话号段: 电信:1349、1740(0-5) package phonemuber ; import javax . swing . * ; import java . awt . * ; import java . awt . event . ActionEvent ; import java . awt .

Android Socket通信

纵然是瞬间 提交于 2020-03-04 22:22:35
目标 Demo是通过Java ServerSocket 和 Socket 通信实现客户端 发送消息 和 发送文件 到服务器,服务器接收到 消息和文件 ,并且实现解决 inputStream.read() 的 阻塞 问题思路。 服务器端 创建ServerSocket服务器 serverSocket = new ServerSocket(port);//首先创建一个服务端口 //等待客户端的连接请求 socket = serverSocket.accept(); 等待Socket客户端连接 //等待客户端的连接请求 socket = serverSocket.accept(); final String socketAddress = socket.getRemoteSocketAddress().toString(); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(ServerActivity.this, "成功建立与客户端的连接 : " + socketAddress, Toast.LENGTH_SHORT).show(); Log.i("Lin", "成功建立与客户端的连接 : " + socketAddress); } }); 接收Socket客户端信息 为了防止接收消息时

关于 socket 通信

自古美人都是妖i 提交于 2020-03-04 19:28:11
**WebServer** package com . tools . payhelper ; import android . content . Context ; import android . text . TextUtils ; import android . util . Log ; import com . tools . payhelper . utils . AbSharedUtil ; import com . tools . payhelper . utils . BitmapUtil ; import com . tools . payhelper . utils . DBManager ; import com . tools . payhelper . utils . OrderBean ; import com . tools . payhelper . utils . PayHelperUtils ; import com . tools . payhelper . utils . QrCodeBean ; import fi . iki . elonen . NanoHTTPD ; import fi . iki . elonen . NanoHTTPD . IHTTPSession ; import fi . iki . elonen .

精准时间同步应用于物联网:室内导航

旧巷老猫 提交于 2020-03-04 19:01:35
物联网(Internet of Things)基于计算机互联网,以传统电信网为信息承载体,利用传感器、射频识别(RFID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,让物体(商品)与网络相连,实时采集任何需要信息交换、定位、跟踪、监管、连接、互动的物体或过程的声、光、热、电、力学、化学、生物、位置等各种所需信息,试图构造一个万事万物相连的网络。在这个网络中,无需人为干预,物品(商品)之间能够自动识别与彼此 “交流”,从而实现信息互联互通、全面共享。 图1 当前,互联网正从消费互联网向产业互联网转型升级。服务于广大传统行业的产业互联网,在未来,有望成为互联网发展的重大趋势。在不久的将来,物联网可广泛应用于室内导航。 众所周知,在室外露天的地方,由于有GPS卫星和地上运营商的通信基站,定位并不难。然而,由于GPS卫星信号难以穿透建筑物,使得GPS定位技术无法直接为室内所用。在5G赋能的当下,GPS定位技术无法穿透购物中心来实现精准定位的技术难题将很快被攻克。当部署在购物中心的小基站有了高精准几纳秒水平的时间同步后,便能实现室内精准导航。很快,人们只需一部手机,便可拥有全世界。比如,某一智能手机用户想购买某品牌香肠,又或者用餐时想吃湖南菜,这在类似北京蓝色港湾那样规模宏大、建筑众多而又容易迷路的购物中心而言,依靠现有技术,并不容易实现。只能靠问询