JAVA网络编程

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值