知识大全 Java学习---网络编程

Posted

篇首语:真正的知识是道德。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java学习---网络编程相关的知识,希望对你有一定的参考价值。

Java学习---网络编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   网络模型OSI的网络模型分为七层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

  Linux内核采用的网络模型 应用层 传输层 网际层 网络接口层

   两台计算机的通信机制

  两***立的计算机 进行通信是需要借助于网络设备的同时 计算机内部是怎么处理的呢?感觉我自己的认识概述如下 一台计算机想要通信首先要找到目标机 只要找到对象才有可能实现通信 这就引出了IP的概念 通信的计算机之间是通过IP地址来查找相应的目标计算机的 IP地址分为两种 IPV 和IPV IPV 是有四个字符数据组成 IPV 是有六个字符数据组成 每个字符数据的最大值是 两台计算机通过网线连接一起后 在遵守TCP/IP协议的前提下 通过IP地址进行通信 每台计算机又有很多的应用程序 如果一台计算机发送数据到另一个计算机上 具体是哪一个应用程序接收呢?这个就需要有端口来区别 计算机一共分配了 —— 个数据用来表示端口 每一个应用程序都有一个自己的端口 也就是一个整数 通过这个端口来决定传输数据的时候具体发送到那一个应用程序上 所以说 计算机想要通信 首先要符合一定的协议 然后有一个IP地址 通过端口号来区分具体的应用程序来处理数据 计算机传输数据时 遵守的协议有很多 常用的有两种 TCP和UDP TCP协议特点 < > 在传输数据前需要建立连接 通过三次握手完成 tcp通信是面向连接的

  < > 数据在传输过程中不需要大包操作 可以传输大量的数据

  < > 由于是在建立连接的基础上进行数据的传输 该协议比较可靠

  < > 想传数据 必须建立连接 在速度和效率上稍低

  UDP协议的特点 < > UDP是面向无连接的 双方进行通信不需要建立连接

  < > 数据在传输过程中要进行打包操作 每个包的最大为 K字节

  < > 面向无连接的传输 该协议不可靠

  < > 不需要建立连接 传输速度快 效率高

   Java中网络编程类java中用来网络编程的包是 UDP协议通信使用的是java包中的DatagramSocket和DatagramPacket对象 建立通信机制的步骤是 < > 通过DatagramSocket对象是为网络通信构建一个通道 专业的叫法就是创建端口

  发送端具体实现代码 DatagramSocket ds = new DatagramSocket() 如果是发送端的话 这个端口可以不进行绑定 使用内核自由分配的端口号即可 如果是接受端的话 这个端口要必须要绑定到特定的端口 这个端口也可以叫做监视器 监视某个端口信息的变化 接收端具体实现代码 DatagramSocket ds = new DatagramSocket(端口号) 参看GDK手册有详细说明

  < > 封包操作

  如果是发送端的话 首先要有数据 由于网络传输的都是二进制数据 所以在定义网络包的时候也要定义成二进制形式的 具体定义代码如下 发送数据包数据 byte[] buf = 数据 getBytes() 接受数据包数据 byte[] buf = new byte[ ] 有了数据和数据缓冲区后 可以把这个数据和数据缓冲区封装成网络包 发送端的数据包 DatagramPacket dp = new DatagramPacket(buf buf length InetAddress getAddress( ) ) 接受端的数据包 DatagramPacket dp = new DatagramPacket(buf buf length) < > 发送接受操作

  根据端口Socket的方法 对数据包发送和接受操作 具体实现代码 发送端 ds send(dp) 接收端 ds receive(dp) 接收到的数据包放到接收端定义的数据包缓冲区中

  < > 关闭资源

  ds close() TCP协议通信使用的是java包中的Socket和ServerSocket对象 TCP和UDP的区别在于 TCP是建立连接 UDP是不需要连接 TCP操作的是端口输入输出流对象 UDP操作的是DatagramPacket包 按照TCP通信时不需要建立包 直接获取输入输出流操作即可 通信机制的步骤如下 < > TCP通信首先也是要建立Socket端口 UDP中客户端和服务端都是使用的DatagramSocket创建对象的方法 创建通信端口 TCP建立端口时 客户端和服务端是使用不一样的类 具体操作代码如下 客户端 Socket s = new Socket() 服务端 ServerSocket ss = new ServerSocket(监听端口) < > 建立连接操作

  通过服务端ServerSocket对象的accept方法获得端口连接 在获得请求端口信息后 建立连接

  < > 获得输入输出流操作

  在客户端获得Socket的getOutputStream()方法 通过该方法 输出数据 在服务端通过获得Socket的getInputStream()方法 读取数据

  < > 关闭流操作

cha138/Article/program/Java/hx/201311/26471

相关参考

知识大全 学习Java编程电脑不好能学好吗

学习Java编程电脑不好能学好吗  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!学习Java编程电脑不

知识大全 学习JAVA游戏开发要用什么软件编程

学习JAVA游戏开发要用什么软件编程?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!学习JAVA游戏

知识大全 Java高级编程之displayTag学习摘要

Java高级编程之displayTag学习摘要  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  t

知识大全 我是一个JAVA的初学者,我应该先学习哪种JAVA编程软件.

我是一个JAVA的初学者,我应该先学习哪种JAVA编程软件.  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 马上要毕业了,想学习java软件编程方面的东西,报哪个培训学校靠谱些

马上要毕业了,想学习java软件编程方面的东西,报哪个培训学校靠谱些?不夸专业学习java吗?如果是建议先自学,在考虑培训哦!这个学校很不错的,我高中三个同学都是在这里学的java。想在大连学习jav

知识大全 学java软件编程需要什么基础?没基础可以学吗?

学java软件编程需要什么基础?没基础可以学吗?学习java有基础的话学习得更快很扎实点,没有基础也是可以学的,只不过要付出更多努力和经历,可以报个培训班系统学习下。学习软件编程需要什么基础?初级软件

知识大全 Java socket 入门编程实例

Javasocket入门编程实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  例子是学习编程的

知识大全 反射在Java Swing编程中的应用

反射在JavaSwing编程中的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学习过Jav

知识大全 Java Web 服务学习报告—Web简介

JavaWeb服务学习报告—Web简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在网络飞速

知识大全 尚学堂学习java和数学英语的影响大不大

尚学堂学习java和数学英语的影响大不大?很多刚入门的小白,会以为编程是不是要求数学好呀,英语好呀?其实,不是。程序的含义是什么?就是一条条的执行语句,就像我们“办事走程序”一样,需要的是逻辑思维能力