首页 > 编程语言 > 详细

Java网络编程学习

时间:2021-04-09 00:04:25      阅读:1      评论:0      收藏:0      [点我收藏+]

1.常用的方法:

  1)IP:InetAddress类,该类无构造器,直接调用静态方法。

  技术分享图片

  结果:

  技术分享图片

  2)端口:InetSocketAddress类主要用于封装端口,有对应的构造器,需要声明实例化后才可调用。

  技术分享图片

  结果:

  技术分享图片

 

2.TCP通信

  TCP分为两部分,一部分为Client端,负责发送消息;另一部分为Server端,负责接收消息,二者主要通过socket套接字编程实现。

  Client端:

  1)首先实例化inetAddress对象,通过域名获取对应服务器的IP,同时用户需要了解该服务器的通信端口;

  2)接下来实例化socket对象,输入的参数为步骤1)中获得的IP和端口,与服务器的socket建立通信;

  3)然后通过socket类中的getOutputStream方法获取一个OutputStream数据类型,以此作为发送的消息;

  4)接着用OutputStream的write方法把要发送的消息一byte类型发送出去。

  5)如果不需要继续监听消息和使用socket,则需要依次调用close方法将这些对象关闭,释放资源。

  Server端:

  1)首先以特定端口作为输入参数实例化ServerSocket对象,建立socket;

  2)调用ServerSocket的accept方法进入监听消息状态;

  3)通过socket类中的getInputStream方法获取一个InputStream数据类型(变量),以此作为监听到的消息;

  4)建立一个一定大小的byte数组用来作为消息存放的缓冲区;

  5)实例化ByteArrayOutputStream对象用来存储接收的消息;

  6)当确定缓冲区内消息有效后,将消息存放到步骤5)实例化的对象中,并通过数据类型转换将其打印出来;

  7)如果不需要继续监听消息和使用socket,则需要依次调用close方法将这些对象关闭,释放资源。

  代码示例:

  技术分享图片

  技术分享图片 技术分享图片

  结果:

  技术分享图片

 

3.TCP文件上传

  和TCP消息通信类似,主要用到了FileInputStream和FileOutputStream类。另外图片文件相对较大,输出流和输入流要多次通过缓冲区进行IO读写发送和接收。

  备注:客户端发送完数据后需要通过shutdownOutput()方法来通知服务器端(或直接关闭socket通信),说明消息发送已停止,否则在单线程中,服务器端会一直处于监听的阻塞状态,无法进行下一步。

  代码示例:

  技术分享图片 技术分享图片

  技术分享图片 技术分享图片

 

4.UDP消息发送

  和TCP通信不同,UDP协议没有服务器和客户端之分。UDP通信主要通过DatagramSocket类来建立socket连接,然后通过DatagramPacket来构建数据包,最后通过DatagramSocket的accept()和send()方法来实现消息的接收和发送。

  代码实例:

  技术分享图片 技术分享图片

  结果:

  技术分享图片

 

5.聊天实现

  1)实现runnable接口来进行消息接收和发送;

  2)区分好消息的源目的端口和目的IP。

  实例:

  技术分享图片 技术分享图片

  技术分享图片 技术分享图片

  技术分享图片

  结果:

  技术分享图片 技术分享图片

 

6.URL下载网络资源

  实例:

  技术分享图片

Java网络编程学习

原文:https://www.cnblogs.com/Kknock/p/14634942.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号