通讯总结
第一:通讯的意义
1.通讯是指:两台电脑之间或者同一台电脑不同程序之间的信息沟通
第二:通讯实现
1.IP
首先要实现通讯就必须了解每台电脑都有一个IP地址,所以我们传递
的信息就可以通过指定传递的IP准确的传到指定位置。如果是同一台电
脑上的程序之间的通讯,就可以使用“localhost”来指定本机IP地址。
2.端口
我们还得知道每台电脑上有65535个端口,每个端口有一个端口号0-65535,
每个端口可以给一个程序通讯使用,一旦这个端口正在使用别的程序就不
能再使用它了。其中的前1000个端口为系统占用,所以一般是用端口号大
于1000的端口。
3.服务器与客户机
通讯中相互连接传递信息的程序之间一个称为服务器,另一个称为客户机。
其中服务器和客户机的区分在于最初时被呼叫的是服务器,主动去呼叫的
是客户机。想象一下我们打电话,主动拨通的手机就是一个客户机,而被
呼叫的就是服务器。但是一旦通讯接通,服务器与客户机的分别就不再有
意义。其中我们用
服务器:
int port;//端口号
java.net.SeverSocket sever=new java.net.SeverSocket(port);
来创建一个绑定在端口port上的服务器对象sever。
当一个服务器对象创建后就应该让它等待着,一旦有客户机接入就实现下一
步具体的通讯内容。
//让服务器等待的做法是:
java.net.Socket client=sever.accept();
程序在执行到此处是会出现滞留即是一直在这个地方,当有客户机接入后就
可以执行在这一行代码后的代码内容了……
客户机:
String IP="……";//要连接的服务器的IP号
int port=…… ;//客户机自己的端口号
java.net.Socket client=new java.net.Socket(IP,port);
4.信息的传递
建立好服务器和客户机后就到了信息的传递了,在计算机的内部信息是以字节传递的。
在这一步我们会用到输入输出流的知识。其实所谓的通讯就是将一个计算机的所要表
的东西在另一个计算机上完整地表达出来或者在同一个计算机上的两个程序之间表达。
每个java.net.Socket 类的对象都能通过:
OutputStream out=client.getOutputStream();//得到输出流
InputStream ins=client.getInputStream();//得到输入流
得到相应的输出输入流;然后就是服务器和客户机分别把自己要表达的信息写入输出流,
从输入流上读取对方所表达的信息;
5.协议
初步的服务器和客户机上的协议其实就是规定好写入的信息和读取的信息的关系;即是
规定好怎样写出,怎样读取以达到读取到信息可以表达写出前的原本意义;
例如:
写出时是:
int a=1;
int b=2;
int c=3;
out.write(a);
out.write(b);
out.write(c);
读取时就应该是:
int a=ins.read();
int b=ins.read();
int c=ins.read();
System.out.println("a= "+a+" b= "+b+" c= "+c);
a=1 b=2 c=3
这样我们就可以得到写出前a b c所表达的意思
如果我们不是按照这个顺序读取,那么我们就得不到写出前意思;这这就是最简单的
协议。当然这么简单的协议是无法满足我们的通讯需要的,我们还得根据需要去定义
更好的协议。
6.线程
我们的客户机和服务器一旦接通,信息的交流就是不断地进行而又不失连续的,通讯
的内容是在不断的增加和变化的,所以我们得需要用线程来实现信息的读取和写入。
7.界面
如果我们想要自己写的通讯能够被别人使用,那我们就得造出一个可视化的界面供用户
使用。
第三:通讯的例子
生活中我们常见的通讯例子:手机,聊天软件,视频软件等等。
简单通讯的实现
1.服务器类
public class Sever{
//port:服务器所在计算机的一个端口
int port;
pulbic Sever(port){
this.port=port;
A(port);
}
//
public void A(int port){
//创建一个服务器对象
java.net.SeverSocket sever=new java.net.SeverSocket(port);
//得到等待器
java.net.Socket client=sever.accept();
//输入输出流
OutputStream out;
OutputStream ins
//实例化一个服务器写线程
SeverThread st=new SeverWriteThread(out);
st.start();
//实例化一个服务器读线程
SeverReadThread rt=new SeverReadThread(ins);
rt.start();
}
}
2.服务器写出线程类
public class SeverWriteThread extends Thread{
//输入输出流
OutputStream out;
//构造方法:将等待器传过来已得到输出与输入流
public SeverWriteThread(OutputStream out){
this.out=out;
}
//入口
public void run(){
while(true){
//调用写的方法
write(out);
//释放CUP;
try{Thread.sleep(100);}catch(Exception ef){ef.printStackTrace();}
}
}
//写出的方法
public void write(OutputStream out){
//要写的内容可根据自己的需要不断加入
int a=1;
int b=2;
int c=3;
out.write(a);
out.write(b);
out.write(c);
}
}
3.服务器读取线程类
public class SeverReadThread extends Thread{
//输入输出流
InputStream ins;
//构造方法:将等待器传过来已得到输出与输入流
public SeverReadThread(InputStream ins){
this.ins=ins;
}
//入口
public void run(){
while(true){
//调用写的方法
read(ins);
//释放CUP;
try{Thread.sleep(100);}catch(Exception ef){ef.printStackTrace();}
}
}
//读取的方法
public void read(InputStream ins){
//按照写的方式读取:当然这个方式应该是客户机里写出的格式,即是协议
int a=ins.read();
int b=ins.read();
int c=ins.read();
}
}
4.客户机
1.客户机类
public class Customer{
//客户机将要去连接的服务器的IP地址
String IP;
//port:服务器所在计算机的一个端口;
int port;
pulbic Customer(String IP,int port){
this.IP=IP;
this.port=port;
A(IP,port);
}
//
public void A(String IP,int port){
//得到等待器
java.net.Socket client=sever.accept(IP,port);
//输入输出流
OutputStream out;
OutputStream ins
//实例化一个服务器写线程
CustomerWriteThread st=new CustomerWriteThread(out);
st.start();
//实例化一个服务器读线程
CustomerReadThread rt=new CustomerReadThread (ins);
rt.start();
}
}
2客户机写出线程类
public class CustomerWriteThread extends Thread{
//输入输出流
OutputStream out;
//构造方法:将等待器传过来已得到输出与输入流
public CustomerWriteThread (OutputStream out){
this.out=out;
}
//入口
public void run(){
while(true){
//调用写的方法
write(out);
//释放CUP;
try{Thread.sleep(100);}catch(Exception ef){ef.printStackTrace();}
}
}
//写出的方法
public void write(OutputStream out){
//要写的内容可根据自己的需要不断加入
int a=1;
int b=2;
int c=3;
out.write(a);
out.write(b);
out.write(c);
}
}
3.客户机读取线程
public class CustomerReadThread Thread{
//输出流
InputStream ins;
//构造方法:将等待器传过来已得到输出与输入流
public CustomerReadThread (InputStream ins){
this.ins=ins;
}
//入口
public void run(){
while(true){
//调用读的方法
read(ins);
//释放CUP;
try{Thread.sleep(100);}catch(Exception ef){ef.printStackTrace();}
}
}
//读取的方法
public void read(InputStream ins){
//按照写的方式读取:当然这个方式应该是服务器里写出的格式,即是协议
int a=ins.read();
int b=ins.read();
int c=ins.read();
}
}
分享到:
相关推荐
基础 通讯总线 常用模块 其他 推荐工具链 sdcc small device C compiler cutecom GUI串口调试器 stcflash A command line programmer for STC 8051 microcontroller Visual Studio Code编辑器,推荐安装以下插件 C/...
在本话题中,我们将深入探讨Flash网游基础通讯,重点关注Flash与FMS(Flash Media Server)以及Flash与Java之间的交互。这些技术在构建实时互动游戏和多媒体应用时起着至关重要的作用。 首先,让我们来看看Flash与...
了解了基础通讯后,可以扩展到更复杂的任务,如实时数据监控、设备控制或者数据记录,以满足不同工程现场的需求。 9. **适合人群**: 对于初学者,可以从这个源码学习如何建立LabVIEW与PLC的通讯,理解基本的读写...
一、通讯协议基础 通讯协议是指设备之间进行数据传输的一套规则和标准。对于易码EC1000喷码机,其通讯协议可能基于常见的串行通信,如RS-232或RS-485,也可能是通过以太网TCP/IP协议进行网络通信。这些协议定义了...
在信息技术领域,编程语言是实现各种应用的基础,而C++作为一门强大且广泛应用的面向对象编程语言,被广泛用于开发各种软件系统。本篇将详细介绍一个用C++编写的通讯簿系统,它不仅体现了C++的基本语法特性,还展示...
2. 通讯协议基础 通讯协议是通讯双方约定的一组用于实现数据交换的规则。RS232和RS485是常见的串行通讯标准。 RS232是一种串行通讯标准,它的特点是全双工通讯,能够同时发送和接收数据,但RS232的通讯距离较短,...
一、通讯协议基础 通讯协议是设备间信息交互的规则和标准,对于BMS系统而言,它规范了数据的传输方式、格式以及错误处理机制。在“智联共享电池BMS通讯协议”中,主要涉及的是蓝牙通讯和后台服务通讯两部分。蓝牙...
在VS2013 IDE编程环境下,利用MFC封装的CSocket类,开发了基于ModbusTCP协议的上位机基础通讯软件,用来和ABB AC500系列PLC进行以太网通讯。该软件可以实现稳定的通信,实现数据监测和数据交换。 三、ModbusTCP协议...
- **PPI协议**:S7-200的基础通讯方式,可以与S7-300通过(MPI)进行通讯,但速度相对较慢。 - **MODBUS RTU**:S7-200支持MODBUS协议,可以通过第三方转换器与S7-300通讯。 - **OPC服务器**:通过OPC服务器,S7-...
总的来说,三菱PLC与数显表的通讯涉及到了工业自动化中的基础通讯技术,包括硬件接口的选择、通讯协议的配置、编程指令的应用以及故障诊断。通过深入学习和实践,工程师可以有效地将PLC采集到的现场数据实时展示在...
在本文中,我们将深入探讨如何使用.NET Core 3.1框架来开发PLC(可编程逻辑控制器)通讯基础控件,特别关注其在工业控制领域的应用。.NET Core是一个跨平台、高性能的开源框架,适合构建各种类型的现代化应用程序,...
此工具针对于Windows工业 PLC 硬件通讯协议及基础通讯而编写的通讯调试/测试工具,采用C#8.0语法及.NET Framework 4.6.2框架。 此项目暂时先开发winform版本 针对工业上位机的通讯测试工具类及实例。包含各类厂商的...
1. PPI(Peripheral Interface)协议:PPI是S7-200 PLC的基础通讯协议,用于主站(如编程器或上位机)与从站(PLC)之间的通讯。它支持点对点或主从多点连接,数据传输速率可达9.6Kbps至187.5Kbps。 2. MPI(Multi-...
10. **扩展性**:一旦建立基础通讯框架,可以进一步扩展功能,例如增加多PLC通讯、支持不同类型的PLC或集成到更复杂的自动化系统中。 综上所述,这个压缩包中的源代码是实现三菱FX系列PLC与PC通讯的关键,为开发者...
本文将详细介绍即时通讯的工作原理,包括其基础通讯协议、客户端和服务端交互过程、点对点通讯机制等方面。 #### 二、通讯协议 ##### 1. TCP/IP 即时通讯系统通常基于TCP/IP协议进行通讯。TCP/IP是一种面向连接的...
二、通讯编程基础 通讯编程是指在不同的进程或设备之间交换数据的过程,它涵盖了网络通信、串口通信、并口通信等多种方式。在VC++中,通常使用Winsock库进行网络通讯,而串口通信则涉及Windows API函数如CreateFile...
一、通讯塔设计基础 通讯塔作为无线通信系统的重要组成部分,其设计需要考虑诸多因素,包括电磁环境、地形地貌、气候条件、信号覆盖范围、安全性和经济性等。角钢通讯塔因其良好的承载能力、抗风性能以及施工便捷性...
根据给定文件的信息,本文将围绕“串口通讯例程(C语言)”这一主题进行展开,详细解析单片机间通过串口RS-232实现点对点异步通讯的...对于从事嵌入式开发的技术人员来说,理解和掌握此类基础通讯技术是非常重要的。