Java -- 网络编程(一):Client与Server之间的数据传送

  目前对于我这种刚接触网络编程的豆芽来说,对网络编程最直观的了解就是:一些的Client和一个Server端之间的数据传递。具体当然是复杂的,但是那是我以后要学的。

今天我知道了可以通过Socket和DatagramSocket两种套接字来进行Client和Server的链接,它们分别对应于TCP和UDP协议

DatagramPacket类:

DatagramPacket类是数据报包。

数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。我觉得这个是比较复杂抽象的理解,我个人就简单的理解为一个装了字节Buffer的包裹,包裹的上面写了收信人的地址和姓名等信息(具体的就是端口号,IP,等等)。

  DatagramSocket类通过receive和send方法进行收发数据报包,也就是收发DatagramPacket类的具体对象,从而实现Client和Server。之间的数据传送。

Socket类:

  Socket套接字是对应与TCP协议的。除了TCP与UDP协议的不同带来Socket与DatagramPacket的不同外。在传送数据的途径上Socket是通过InputStream和OutputStream两个流。比如:

  

Socket socket = new Socket("cuishen.iteye.com",80);  
InputStream in = socket.getInputStream();  
OutputStream out = socket.getOutputStream(); 

这三句相当于在Client和Server之间连接了两个管子,一个流入,一个流出。

我今天是第一次接触网络编程这个概念,所以理解的都是表面的东西。但好歹是个好的开始。如有不对的请多指教。

posted @ 2012-05-06 22:12  Jojojojoo  阅读(517)  评论(0编辑  收藏  举报