众所周知,要实现网络通信,要使得多台设备能够协同工作实现信息交互和资源共享就必须要遵守相互都能接受的规则,而这种规则便是我们所熟悉的通信协议。因此说到底网络通信的根本其实还是通信协议,而平时我们最常用的通信协议就是TCP/IP、NETBEUI和IPX/SPX三种协议。
我仔细翻看了一些资料后,算是对TCP/IP协议有了一些了解,TCP/IP协议就是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通信协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。而TCP/IP一般有下面几个层次
网络接口层:也称为数据链路层,它是 TCP/IP 的最底层。
互联网层:也称IP层,该层把分组封装到IP数据报中,填入数据报的首部,使用路由算法来选择数据报的传输途径。然后把数据报交给下面的网络接口层中的对应网络接口模块。
传输层:其功能是使源端主机和目标端主机上的对等实体可以进行会话。分为TCP和UDP协议。
应用层:将OSI参考模型中的会话层和表示层的功能合并到应用层实现。应用层面向不同的网络应用引入了不同的应用层协议。
当我们分别使用TCP与UDP来发送数据时,我们会发现,TCP会判断文件是否发送成功,如未发送成功,则重新发送数据包,虽然能够精确的传输你想要的数据包,却因此导致TCP数据包发送的效率低下而UDP则是更注重于效率方面,不管数据包是否被接收,UDP只负责发送数据,因此UDP的效率相比TCP无疑是高了很多。而我们所熟悉的QQ也是用UDP来传输服务器与客户机之间的数据。
下面是使用UDP的一个简单的java客户端的创建:
package pzw.xieyi; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketAddress; import javax.swing.JTextArea; public class NetClient extends Thread{ private String msg; private JTextArea jta = new JTextArea(); public NetClient(String msg,JTextArea jta){ this.msg = msg; this.jta = jta; } public void run(){ try{ //创建用来接收的本地地址对象 SocketAddress localaddr = new InetSocketAddress("192.168.43.172",420); //接收的服务器UDP端口 DatagramSocket recvSocket = new DatagramSocket(localaddr); while(true){ //指定接收缓冲区大小 byte[] buffer = new byte[20]; //创建接收数据包对象,指定接收大小 DatagramPacket packet = new DatagramPacket(buffer,buffer.length); recvSocket.receive(packet); //得到发送方的ip和端口 SocketAddress address = packet.getSocketAddress(); //转换接收到的数据为字符串 msg=new String(packet.getData()).trim(); jta.append(msg); System.out.println("收到数据:"+msg); } }catch(Exception ep){ ep.printStackTrace(); } } }
这便是我这段时间对TCP/IP协议的学习心得~~~
相关推荐
本文将详细讲解如何初识通信,并以多线程服务器的构建为例,来阐述相关技术点。 首先,理解多线程的概念至关重要。多线程是指在一个进程中可以同时执行多个线程,这样可以充分利用CPU资源,提高程序的执行效率。在...
初识JavaScript ———(2)!!!.md
初识JavaScript———(1)!!!.md
本章"初识C++——C++程序设计入门"是学习C++之旅的起点,旨在为初学者构建坚实的基础。 首先,C++程序的基本结构通常包括预处理指令、函数定义、变量声明和控制流语句。预处理指令以`#`开头,如`#include`用于引入...
值得注意的是,FX1N系列除了可以使用FX0N的所有特殊模块和外围设备外,还提供了扩展板如FX1N-232-BD、FX1N-422-BD和FX1N-485-BD,以及FX1N-8AV-BD和FX1N-5DM模块,进一步增强了通信和控制功能。 在性能指标上,FX0N...
3. I/O单元:连接CPU与外部设备,负责信号的转换和传递,确保PLC与生产设备间的数据通信。 总的来说,PLC以其高效、灵活、可靠的特性,成为现代工业自动化的核心组件,极大地推动了工业生产效率的提升。
4. **系统监控阶段**:在此阶段,PLC会进行自我诊断和通信任务,检查硬件状态,处理网络通信,并准备进行下一个扫描周期。 ### 扫描周期 PLC的工作是周期性的,每个完整的扫描过程称为一个扫描周期。扫描周期包括...
【初识鲁迅与《少年闰土》】 鲁迅,原名周树人,是中国现代文学的巨匠,同时也是著名的思想家、革命家和教育家。他的一生致力于文学创作和社会批判,其作品深具影响力,对中国现代文化的发展产生了深远影响。鲁迅在...
PLC技术
PLC技术及应用
这篇文档主要介绍的是初学者如何理解并应用单片机来实现十字路口交通灯的控制。在交通灯控制中,单片机是核心控制器,它负责根据预设的时间序列来切换不同方向的信号灯状态,以确保交通流畅和安全。...
初识Modbus TCP/IP-C#编写Modbus TCP客户端程序 配合相关博文 http://blog.csdn.net/thebestleo/article/details/52331976 学习
IOC-InversionofControl,译为控制反转,是一种遵循依赖倒置原则的代码设计思想。所谓依赖倒置,就是把原本的高层建筑依赖底层建筑“倒置”过来,变成底层建筑依赖高层建筑。高层建筑决定需要什么,底层去实现这样的...
交流JTAG协议破解——从TAP状态机开始 在学习JTAG协议之前,我们需要了解一些基本知识,如状态机、C语言、单片机、SPI协议等。JTAG协议是目前应用最广泛的下载和仿真协议,但其核心却是TAP状态机。 首先,让我们来...
在Python编程中,初学者经常会接触到turtle库,这是一个非常实用且有趣的模块,它允许我们创建基本的图形和图像。在本文中,我们将深入探讨turtle库的一些核心概念和功能。 首先,turtle库概述:turtle库是Python...
读书笔记 |《大话移动通信》书籍信息书名:《大话移动通信》作者:丁奇 阳桢出版社:人民邮电出版社本书解决的问题初识移动通信构建移动通信学习基本脉络框架书籍内容结构第一章:点对点的无线通信——从贝尔到...
总结起来,通信工程图纸的初识和CAD软件的使用是通信工程勘察设计的核心技能。从识读图纸的基本要素到熟练运用CAD软件进行设计,都需要扎实的理论基础和实践操作经验。通过这样的学习,工程师可以更好地理解和执行...