1.Java Networking--java网络

本文是在Java Networking翻译而来。欢迎大家联系我,跟我一起交流。本人水平有限,如果错误欢迎指正。

Java已经有一个相当易用的内置网络接口了,这使得通过TCP/IP套接口和UDP套接口进行网络间的通信变得简单容易。比起UDP, TCP明显更比较常用,但是在本教程中二者都会介绍。

教程网址上还有其他三个教程,它们和java网络教程都是有关联的。它们是:Java IO Tutorial(输入输出教程)、Java NIO Tutorial(新IO教程)、Java Multithreaded Servers Tutorial(多线程服务器教程)

Java IO Tutorial输入输出教程
Java NIO Tutorial 新IO教程
Java Multithreaded Servers Tutorial 多线程服务器教程

纵然java网络接口可以让你通过sockets打开和关闭网络,但通信还是基于Java IO里面的输入流(InputStream)和输出流(OutputStream)。

你也可以选择Java NIO接口中的网络类。除了Java NIO接口可以在无阻塞模式下工作,这些类和Java网络接口中的类是相似的。在某些情况下,无阻塞模式会给予性能提升。

###Java TCP Networking Basics-- Java TCP网络基础

典型的,一个客户端先启动一个TCP/IP连接一个服务器。然后客户端开始和服务器通信,当客户端结束通信时,它会关闭与服务器的连接。简述如下图:
这里写图片描述

通过连接,客户端可能发送不止一条请求。事实上,只要服务器准备好接收,客户端可以发送尽可能多的数据。如果服务器想关闭连接,它也可以这么做。

###Java Socket’s and ServerSocket’s java Socket类和 ServerSocket类

当客户端想开启TCP/IP连接服务器,通常会用Socket。告诉Socket IP地址和TCP端口来连接,剩下的都会由Java完成。

如果你想服务器在某个TCP端口监听客户端的连接数,你得用Java ServerSocket。当客户端通过客户端的socket连接到服务器的ServerSocket,针对这个连接,服务器会分配一个Socket。此时,客户端和服务器通过Socket-to-Socket通信。

###Java UDP Networking Basics Java UDP网络基础

UDP工作时会和TCP有一点不同。用UDP时,客户端和服务区是没有连接的。客户端有可能向服务器发送数据,服务器有可能接收到(也有可能没收到)这些数据。在另一边,客户端永远也不知道数据是否已经被服务器接收了。同样的服务器向客户端发送数据也是这样的。

由于没有确认数据的传输,UDP协议具有较小的协议开销。
在几种情况下,无连接的UDP模式比TCP模式更适用。这些情况在Java’s UDP DatagramSocket’s文本中有更详细的涉及。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值