java networking

origin:http://tutorials.jenkov.com/java-networking/index.html

java拥有简单易学的networking API,利用该API可以方便的通过TCP/IP socket或者UDP  socket在互联网通信。TCP通常比UDP用得多,在本tutorial中二者都会讲到。

下面是三个其他的tutorial,都与java网络tutorial相关。参考如下链接(均尚未翻译):

1.java IO tutorial

2.java NIO tutorial

3.java multi-threaded servers tutorial

即使java的networking API使你通过socket可以打开或关闭网络连接了,但是还会涉及ava的IO类,比如InputStream和OutputStream。

或者你可以利用java NIO API中的networking类,这些类与networking API中的networking类很相似,当然,他们的区别就是NIO API可以在非阻塞模式(non-blocking mode)下工作。非阻塞模式在一些情况下会有很好的表现。

java TCP 网络基础知识

通常客户端与服务器端都是TCP/IP链接。然后客户端开始向服务器通信。当客户端完成通信后,再次关闭连接。下图可以便是描述:

————                                                                  ————
| 客户端 |                                                                  | 服务器 |
————                                                                  ————
|--------------------------打开连接-------------------------------->|
| --------------------------发送请求-------------------------------->|
|<------------------------接收响应-----------------------------------|
| --------------------------关闭连接-------------------------------->|

客户端打开连接一次可以发送多次请求,不止一次哦。实际上,服务器端准备接收多少数据,客户端就可以发送多少数据。服务器端也有随时关闭连接的权利。

java Socket 和ServerSocket有关

当一个客户端想与服务器端打开连接的时候,它可以通过Socket来完成。只需将IP地址和端口号告诉Socket,剩下的,你就交给java好了。

如果你想开启一个服务器端监听来自某些TCP端口的客户端的请求,那你需要用到ServerSocket。当一个客户端通过客户端的Socket连接服务器端的ServletSocket,服务器将会得到一个分配给它的Socket,只为该连接,这样一来,服务器和客户端就可以Socket-Socket通信了。

Socket和ServerSocket在后续文章会详细讲到。

java UDP 网络基础知识

UDP的工作模式与TCP略有不同。使用UDP的话,服务器与看客户端是无需连接的。客户端可以发送数据给服务器,服务器可能会收到,也可能会收不到。客户端不会知道数据到底有没有发送给服务器(译者注:它也不管数据会不会到服务器)。从服务器到客户端的数据也一样,不可靠。

正因为数据交付没保障,所以UDP协议没有太多开销(less protocol overhead)(译者注:UDP的数据报比TCP数据报精简多了)。

别看UDP没保障,在好多情况下,UDP要比TCP更合适。这些细节将会在第四讲讲到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值