北大青鸟|成都名流北大青鸟电脑培训学校,专业计算机软件开发培训,学士后课程专为大学生开设
北大青鸟|成都名流北大青鸟电脑培训学校,专业计算机软件开发培训,学士后课程专为大学生开设 网站地图 成都北大青鸟培训学校 北大青鸟培训 成都北大青鸟

首 页
新闻 青鸟 热点 大学生就业
学习 JAVA .NET 网站建设
学校 总部 学校地址 荣誉
招生 问答集 学费 课程
课程 学士后 java课程 .net课程
就业 就业学员 就业企业 职业规划
师资 高级讲师 就业专员
实训 学员作品 创业中心
高中生学什么 大学生就业
视频 青鸟视频 课程视频
成都北大青鸟名流培训学校介绍北大青鸟学士后课程成都北大青鸟项目实训成都北大青鸟培训中心学员就业成都北大青鸟培训中心在线咨询成都北大青鸟官网报名

全国免费电话:4007-028-222
在线咨询QQ:923597100
成都北大青鸟学生交流群①:94507684
当前位置: 主页 > 学习社区 > JAVA学习 >

成都名流北大青鸟Java学习之网络编程

时间:2012-01-13 11:05来源:成都名流 作者:朱老师 点击:
网络模型OSI的网络模型分为七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。Linux内核采用的网络模型:应用层,传输层,网际层,网络接口层。

       1,网络模型OSI的网络模型分为七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
  Linux内核采用的网络模型:应用层,传输层,网际层,网络接口层。
  2,两台计算机的通信机制。
  两台对立的计算机,进行通信是需要借助于网络设备的同时,计算机内部是怎么处理的呢?感觉我自己的认识概述如下。一台计算机想要通信首先要找到目标机,只要找到对象才有可能实现通信,这就引出了IP的概念,通信的计算机之间是通过IP地址来查找相应的目标计算机的。IP地址分为两种:IPV4和IPV6.IPV4是有四个字符数据组成,IPV6是有六个字符数据组成。每个字符数据的最大值是255.两台计算机通过网线连接一起后,在遵守TCP/IP协议的前提下,通过IP地址进行通信。每台计算机又有很多的应用程序,如果一台计算机发送数据到另一个计算机上,具体是哪一个应用程序接收呢?这个就需要有端口来区别。计算机一共分配了0——65535个数据用来表示端口。每一个应用程序都有一个自己的端口,也就是一个整数,通过这个端口来决定传输数据的时候具体发送到那一个应用程序上。所以说,计算机想要通信,首先要符合一定的协议,然后有一个IP地址,通过端口号来区分具体的应用程序来处理数据。计算机传输数据时,遵守的协议有很多,常用的有两种:TCP和UDP. TCP协议特点:<1>.在传输数据前需要建立连接,通过三次握手完成,tcp通信是面向连接的。
  <2>.数据在传输过程中不需要大包操作,可以传输大量的数据。
  <3>.由于是在建立连接的基础上进行数据的传输,该协议比较可靠。
  <4>.想传数据,必须建立连接,在速度和效率上稍低。
     UDP协议的特点:<1>.UDP是面向无连接的,双方进行通信不需要建立连接。
  <2>.数据在传输过程中要进行打包操作,每个包的最大为64K字节。
  <3>.面向无连接的传输,该协议不可靠。
  <4>.不需要建立连接,传输速度快,效率高。
  3,Java中网络编程类java中用来网络编程的包是:java.net;UDP协议通信使用的是java包中的DatagramSocket和DatagramPacket对象。建立通信机制的步骤是:<1>.通过DatagramSocket对象是为网络通信构建一个通道,专业的叫法就是创建端口。
  发送端具体实现代码:DatagramSocket ds = new DatagramSocket();如果是发送端的话,这个端口可以不进行绑定,使用内核自由分配的端口号即可。如果是接受端的话,这个端口要必须要绑定到特定的端口,这个端口也可以叫做监视器。监视某个端口信息的变化。接收端具体实现代码:DatagramSocket ds = new DatagramSocket(端口号);参看GDK手册有详细说明。
  <2>.封包操作。
  如果是发送端的话,首先要有数据,由于网络传输的都是二进制数据,所以在定义网络包的时候也要定义成二进制形式的。具体定义代码如下:发送数据包数据:byte[] buf= "数据".getBytes();接受数据包数据:byte[] buf = new byte[1024];有了数据和数据缓冲区后,可以把这个数据和数据缓冲区封装成网络包:发送端的数据包:DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getAddress("192.168.1.104"),10000);接受端的数据包:DatagramPacket dp = newDatagramPacket(buf,buf.length);<3>.发送接受操作。
  根据端口Socket的方法,对数据包发送和接受操作。具体实现代码:发送端:ds.send(dp);接收端:ds.receive(dp); 接收到的数据包放到接收端定义的数据包缓冲区中。
  <4>.关闭资源。
  ds.close();TCP协议通信使用的是java包中的Socket和ServerSocket对象。TCP和UDP的区别在于,TCP是建立连接,UDP是不需要连接,TCP操作的是端口输入输出流对象,UDP操作的是DatagramPacket包。按照TCP通信时不需要建立包,直接获取输入输出流操作即可。通信机制的步骤如下:<1>.TCP通信首先也是要建立Socket端口。UDP中客户端和服务端都是使用的DatagramSocket创建对象的方法,创建通信端口。TCP建立端口时,客户端和服务端是使用不一样的类。具体操作代码如下:客户端:Socket s = new Socket();服务端:ServerSocket ss = new ServerSocket(监听端口);<2>.建立连接操作。
  通过服务端ServerSocket对象的accept方法获得端口连接,在获得请求端口信息后,建立连接。
  <3>.获得输入输出流操作。
  在客户端获得Socket的getOutputStream()方法,通过该方法,输出数据。在服务端通过获得Socket的getInputStream()方法,读取数据。
  <4>.关闭流操作。
  客户端:s.close();服务端:s.close; ss.close();4,网络编程的实例附录:UdpTrans.java  <使用UDP协议进行简单的通信实验> TcpDemo.java   <使用TCP协议进行简单的通信实验> UdpdownText.java <使用UDP协议上传文本文件> UdpdownPic.java  <使用UDP协议上传图片>
   

(编辑:成都北大青鸟名流)