黑马程序员--网络通信UDP编程的总结及部分知识点查询

---------------------- android培训java培训、期待与您交流! ----------------------

关于网络通信编程的总结:

一:网络模型

OSI开放系统互连模型:七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP/IP参考模型:四层:

应用层:应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等

传输层:传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).

网际层:网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。该层有四个主要协议:网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)

网络访问层:网络访问层与OSI参考模型中的物理层和数据链路层相对应。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络访问层进行连接。

 

二:关于IP、端口、协议

IP、端口、协议都不是实体存在形式,都是为了网络通信而建立的虚拟的标识,是进行网络通信的三大要素。

IP地址的划分

http://www.cnblogs.com/lanru/archive/2010/10/16/1853232.html

http://bbs.pcpop.com/thread-5628844-1-1.html

软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构。

UDP和TCP协议的区别:

UDP:

a:将数据及源和目的封装在数据包中,不需要建立连接

b:每个数据包的大小在限制在64K内,也就是byte[1024*64]

c:因为无连接,是不可靠协议

d:不需要建立连接,速度快

TCP:

a:需要建立连接,形成传输数据的通路

b:在连接中进行大数据量传输

c:通过三次握手完成连接,是可靠协议

d:必须建立连接,效率会稍低

 

三:根据视频中UDP编程,自己进行的实践:通过DatagramSocket进行udp编程思路重现

首先要明确socket网络编程必然涉及两方:接收端、发送端

DatagramSocket此类表示用来发送和接收数据报包的套接字。

发送端udp编程的思路:

A:开启DatagramSocket服务,

B:创建数据报包DatagramPacket对象,并将要发送的数据以byte[]字节数组形式传入,同时还要将InetAddress对象,和发送的端口以参数的形式传入。如果需要实现控制台发送多条语句,需要将数据报包对象创建放在while(true)循环读取中。

C:调用DatagramSocket服务的方法将数据发送出去:ds.send(dp)。

D:关闭ds所调用的资源:ds.close();

接收端udp编程思路:

A:开启DatagramSocket服务,由于udp采用广播方式发送,故在客户端在开启DatagramSocket服务时需要绑定一个监听端口

B:创建一个空的byte[]字节数组,作为接收从物理层传来的字节数据。

C:创建数据报包DatagramPacket对象,并把上面建立的空的字节数组作为参数传入,传入后,以后的事全部交给ds、dp来处理。

D:调用DatagramSocket服务特有方法接收数据:ds.receive(dp)

E:处理数据,继续等待接收数据

 

四:使用TreeSet进行排序的条件

TreeSet类在创建对象时提供两种排序:自然排序和指定比较器排序。

自然排序:public TreeSet()构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。插入该 set 的所有元素都必须实现 Comparable 接口。另外,所有这些元素都必须是可互相比较的:对于set中的任意两个元素e1 和e2,执行e1.compareTo(e2) 都不得抛出 ClassCastException。

指定比较器排序:public TreeSet(Comparator<? super E> comparator)

构造一个新的空 TreeSet,它根据指定比较器进行排序。插入到该 set 的所有元素都必须能够由指定比较器进行相互比较:对于 set 中的任意两个元素 e1 和 e2,执行 comparator.compare(e1, e2) 都不得抛出 ClassCastException。


 

---------------------- android培训java培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net/heima
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值