java套接字编程_Java套接字编程:教程

本文是一篇关于Java套接字编程的教程,通过客户端和服务器的示例,介绍了如何使用老式Java套接字进行TCP通信。文章详细解释了TCP与UDP的区别,并提供了简单的HTTP GET请求的客户端示例,以及多线程服务器的实现,展示了如何处理多个并发连接。
摘要由CSDN通过智能技术生成

java套接字编程

本教程是Java套接字编程的简介,从一个简单的客户机-服务器示例开始,该示例演示了Java I / O的基本功能。 将向您介绍原始的 java.io软件包和NIO,即Java 1.4中引入的非阻塞I / O( java.nio )API。 最后,您将看到一个示例,该示例演示了在NIO.2中从Java 7向前实现的Java网络。

套接字编程可归结为两个相互通信的系统。 通常,网络通信有两种形式:传输控制协议(TCP)和用户数据报协议(UDP)。 TCP和UDP用于不同目的,并且都有独特的约束:

  • TCP是相对简单且可靠的协议,它使客户端可以连接到服务器,并使两个系统进行通信。 在TCP中,每个实体都知道已收到其通信有效载荷。
  • UDP是一种无连接协议 ,适用于不一定需要每个数据包到达其目的地的情况,例如媒体流。

要了解TCP和UDP之间的区别,请考虑如果您从自己喜欢的网站流式传输视频并且丢帧了会发生什么情况。 您是希望客户端放慢影片的速度来接收丢失的帧,还是希望视频继续播放? 视频流协议通常利用UDP。 因为TCP保证传送,所以它是HTTP,FTP,SMTP,POP3等的首选协议。

在本教程中,我向您介绍Java中的套接字编程。 我提供了一系列客户机/服务器示例,这些示例演示了原始Java I / O框架中的功能,然后逐步推进使用NIO.2中引入的功能。

老式Java套接字

在NIO之前的实现中,Java TCP客户端套接字代码由java.net.Socket类处理。 以下代码打开与服务器的连接:

Socket socket = new Socket( server, port );

一旦我们的socket实例连接到服务器,我们就可以开始获取到服务器的输入和输出流。 输入流用于从服务器读取数据,而输出流用于将数据写入服务器。 我们可以执行以下方法来获取输入和输出流:

InputStream in = socket.getInputStream();
	OutputStream out = socket.getOutputStream();

因为这些是普通流,所以我们将使用它们从文件中读取和写入文件,因此可以将它们转换为最适合我们用例的形式。 例如,我们可以将OutputStreamPrintStream包裹在一起,以便我们可以轻松地使用诸如println()类的方法编写文本。 再举一个例子,我们可以通过InputStreamBufferedReader包装InputStreamReader ,以便使用readLine()类的方法轻松读取文本。

下载
“ Java套接字编程:教程”的源代码。 由Steven Haines为JavaWorld创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值