JAVA网络编程

来源:互联网 发布:安卓计步器软件哪个好 编辑:程序博客网 时间:2024/06/03 16:10

JAVA网络编程整理

在这里面主要整理TCP和UDP编程两种

TCP协议

定义

TCP协议是一种可靠的网络协议,在通信的两端各建立一个Socket,然后在两个Socket之间建议一个虚拟的网络联接,双方通过这个联接来进行通信。

Server端

  1. 新创建一个ServerSocket对象
  2. 通过ServerSocket的accept()方法,返回一个与客户端联接的Socket
  3. 通过Socket的getInputStream(),getOutputStream(),然后对这两个字节流进行包装,然后再来进行与客户端的读写。
  4. 通信完成以后关闭读写流,关闭Socket

一般来ServerSocket不关闭,因为它需要时刻监听任何一个来自客户端的联接请求。

Client端

  1. 新创建一个Socket对象,此Socket对象需要指定服务端的IP及端口号,其中”127.0.0.1”指的是本机。
  2. 通过Socket的getInputStream(),getOutputStream(),然后对这两个字节流进行包装,然后再来进行与服务端的读写。
  3. 通信完成以后关闭读写流,关闭Socket。

从以上步骤可以看见其中Client端与Server的方法比较类似,区别在于Server端需要新创建一个ServerSocket对象,然后再通过ServerSocket对象的accept()方法来创建Socket对象.


UDP编程

定义

UDP协议是一种不可靠的协议,在通信双方各建立一个Socket,但这两个Socket之间并没有虚拟联接,两个Socket只管发送,接收数据包,至于对方有没有收到则不管,存在的问题是可能会丢数据包,导致数据的丢失。

Server端编程

  1. 新建一个byte[]对象,用来接收客户端传过来的数据。
  2. 新建DatagramPacket对象,将第1步新建的byte[]对象封装在里面。
  3. 新建一个DatagramSocket对象。
  4. 使用DatagramSocket的receive方法,参数为第2步中的DatagramPacket对象。此时数据已经传到byte[]中了。
  5. 此时已经完成了数据的接受动作,把byte中的数据取出即可。

Client端编程

  1. 新建一个byte[]对象,用来装需要传输的数据
  2. 新建DatagramPacket对象,将第1步新建的byte[]对象封装在里面,并且需要在包里面注明接收端的IP及端口号。
  3. 新建一个DatagramSocket对象。
  4. 使用DatagramSocket的send方法,参数为第2步中的DatagramPacket对象。此时数据已经发达出去了。

注意:如何Server端需要给Client回复信息,可以从接受到的DatagramSocket中拿到客户端的IP及端口信息(getSocketAddress()方法),然后采用和Client端编程类似的方法来发送即可。

0 0
原创粉丝点击