A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨玲 中级黑马   /  2013-2-7 22:36  /  845 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨玲 于 2013-2-7 22:37 编辑

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------

现在总结网络编程.在网络通信中,人们把网络通信分为了多个层.为了方便理解,我们在学习计算机网络的时候采用的是
一种五层协议的体系结构,而实际是TCP/IP体系的四层协议的体系结构.,而在JAVA中的网络编程所在的是第三层的:
运输层的协议.在这一层中有一个很重要的概念:IP 表示某一个客户端在网络中的地址.而它分别有两种比较通用的协议:
TCP和UDP.而我现在要总结的网络编程所包括的内容以下的几个内容:

1.网络编程的三要素
2.TCP和UDP协议表现形式
3.应用层开发.

第一点:网络编程的三要素.

要想实现网络编程就首先必须得明确几点,
1.找到要与其通信的电脑在网络中的地址(IP)
2.找到对方的电脑中的应用程序端口(端口)
3.确定传输数据的规则(协议)
我们把这三点称为网络通信的三要素:IP,端口.协议,
在应用层要想实现通信就必须经过这么几个步骤,
IIP地址:                网络中设备的地址.用一组4段的0-255的数字表示如:255.125.32.123,这样的数字不容易记忆.        
                                        所以在用于经常用另一种叫做域名的形式来表示,JAVA中就专门定义了一个对象:InetAddress
端口号:                表示应用程序在电脑中的编号,用一组0-65535的数字表示.
传输协议:        主要就是确定通信的时候传递信息的规则.在传输层中现在主流的有两个TCP和UDP协议.


第二点:TCP和UDP协议表现形式.

在通信的过程中传递的其实都是二进制 的数据,要确定不同的二进制表达的不同含意,这就是协议在作用,

UDP:        它是面向无连接的.将源和目的封装在数据包中.每个数据包的大小限制在64K以内.它是不可靠协议.速度快.
        在JAVA中,通过对象DatagramSocket ,来建立UDP协议,数据包用对象DatagramPacket,
        要想使用,UDP协议方式的网络通信需要分成两个步骤:接收数据包和发送数据包

        UDP数据包的发送步骤:
                1.建立UDP服务.通过对象,DatagramSocket
                        DatagramSocket ds = new DatagramSocket(10000);//10000为要监听的端口
                2.确定要发送的数据,并封装成包,通过对象DatagramPacket
                        DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getLocalHost(),10000);
                        //data为已有的字节数组,InetAddress.getLocalHost()为接收端IP地址,我这里设置成的本机的,10000为接收端端口号
                3.通过建立的UDP服务把数据包发出去.调用UDP服务中的send方法.
                        ds.send(dp);
                4.关闭资源.
        UDP协议的数据包的接收步骤:
                1.建立UDPSocket服务.,通常会监听一个端口,其实就是给这个网络应用程序定义一个数字标识.
                        DatagramSocket ds = new DatagramSocket(10000);//发送端如果不指定端口号则系统会生成一个默认的.
                2.建立一个空的数据包对象.用于接收数据并对数据进行提取.
                        DatagramPacket dp = new DatagramPacket(data,data.length);//建立空的数据包,data是一个空的字节数组,                                       
                3.对过UDPSocket服务的receive方法接收数据.
                        ds.receive(dp);//接收数据包的信息存放到dp中,
                4.通过数据包对象的特有方法,对数据包中的内容进行操作(取出).可以查阅API
                5.关闭资源.                        
TCP:        它是有连接的,可以进行大数据通信,可靠,速度较慢.TCP又分为客户/服务器两部分,表示客户端的对象是:Socket,
        表示服务器的对象是:ServerSocket.要想实现TCP协议的数据通信,就需要有两个部分:客户端和服务端.

        客户端:
                1.建立Socket服务,并指定访问的服务器的地址及其端口号,通过对象:Socket.
                2.通过Socket服务获得连通的流对象(输入/输出).通过Socket对象的get方法.
                3.通过流对象进行数据的传输,
                4.关闭资源.
        服务器端:
                1.建立Socket服务,并指定要监听的端口,通过:ServerSocket,如:
                        ServerSocket ss = new ServerSocket(10004);//10004为要监听的端口
                2.拿到请求服务的客户端.
                        Socket s = ss.accept();
                3.接收客户端发送的请求,通过客户端的输入流.
                        InputStream is = s.getInputStream();//通过这个流就可以接收客户端的请求
                4.对请求做出响应,
                5.关闭资源.
关于传输层的TCP和UDP协议的内容总结得也就是这些了.

第三点:应用层开发.
        在应用层的通信是用一个URL对象来创建服务的
        URL: 代表一个统一资源定位符.它是指向互联网资源的指针.可以通过它的openConnection()连接到远程主机上.
                 它返回一个URLConnection对象.
        URLConnection:该对象是Socket在应用层的封装形式.
        要实现一个应用层的通信需要以下的步骤.
        1.创建一个URL对象.在创建时需要指定连接的对象.
        2.建立连接.调用openConnection()方法.
        3.通过返回的URLConnection对象进行通信.
        4.关闭资源

        呃..这个URL建立的连接是基于TCP协议的.
        恩,先到这吧,头脑不是很清醒,对于UDP协议有在应用层与之对应的对象吗?这些我还需要查阅API.
        网络编程这一块的复习就到此为止了!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马