`
2277259257
  • 浏览: 515470 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java网络教程-基础

 
阅读更多

Java提供了非常易用的网络API,调用这些API我们可以很方便的通过建立TCP/IP或UDP套接字,在网络之间进行相互通信,其中TCP要比UDP更加常用,但在本教程中我们对这两种方式都有说明。

在网站上还有其他三个与Java网络相关的教程,如下:

1.Java IO 教程

2.Java NIO 教程

3.Java服务器多线程教程 (参与翻译可以联系我们)

尽管Java网络API允许我们通过套接字(Socket)打开或关闭网络连接,但所有的网络通信均是基于Java IO类 InputStreamOutputStream实现的。

此外,我们还可以使用Java NIO API中相关的网络类,用法与Java网络API基本类似,Java NIO API可以以非阻塞模式工作,在某些特定的场景中使用非阻塞模式可以获得较大的性能提升。

Java TCP网络基础

通常情况下,客户端打开一个连接到服务器端的TCP/IP连接,然后客户端开始与服务器之间通信,当通信结束后客户端关闭连接,过程如下图所示:

​客户端通过一个已打开的连接可以发送不止一个请求。事实上在服务器处于接收状态下,客户端可以发送尽可能多的数据,服务器也可以主动关闭连接。

JavaSocket类和ServerSocket

当客户端想要打开一个连接到服务器的TCP/IP连接时,就要使用到Java Socket类。socket类只需要被告知连接的IP地址和TCP端口,其余的都有Java实现。

假如我们想要打开一个监听服务,来监听客户端连接某些指定TCP端口的连接,那就需要使用Java ServerSocket类。当客户端通过Socket连接服务器端的ServerSocket监听时,服务器端会指定这个连接的一个Socket,此时客户端与服务器端间的通信就变成Socket与Socket之间的通信。

关于Socket类和ServerSocket类会在后面的文章中有详细的介绍。

Java UDP网络基础

UDP的工作方式与TCP相比略有不同。使用UDP通信时,在客户端与服务器之间并没有建立连接的概念,客户端发送到服务器的数据,服务器可能(也可能并没有)收到这些数据,而且客户端也并不知道这些数据是否被服务器成功接收。当服务器向客户端发送数据时也是如此。

正因为是不可靠的数据传输,UDP相比与TCP来说少了很多的协议开销。

在某些场景中,使用无连接的UDP要优于TCP,这些在文章Java UDP DatagramSocket类介绍中会有更多介绍。

分享到:
评论

相关推荐

    Java技术教程--基础篇

    本教程“Java技术教程--基础篇”旨在为初学者提供一个全面的Java学习平台,帮助他们掌握Java编程的基础概念和技能。教程内容涵盖Java的核心特性,包括图形用户界面(GUI)、线程管理和网络通信。 首先,我们来深入...

    java基础教程----精华版

    这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java语言的核心概念和关键知识点。 1. **Java语法基础**: - **变量**:在Java中,变量是存储...

    Java基础知识培训 Java基础教程-Java基础知识全套PPT课件 共9个章节.rar

    【完整课程列表】 Java基础[01-Java概述].pdf Java基础[02-Java基础语法1].pdf Java基础[02-Java基础语法2].pdf Java基础[03-面向对象].pdf Java基础[04-继承上].pdf ...Java基础[09-网络编程].pdf

    Java学习教程-基础入门及提高.doc

    Java 学习教程 - 基础入门及提高 Java 作为一种强大的编程语言,提供了丰富的特性和优雅的设计,旨在解决大规模和复杂的编程问题。本教程旨在引导初学者逐步进入Java的世界,同时也适合有一定编程基础的开发者...

    Java教程--ppt

    【Java教程--PPT】是一份详尽的Java学习资源,旨在帮助初学者以及有一定基础的开发者深化对Java编程语言的理解。这份教程可能包含了PPT形式的课件,由教育专家雷学生精心编排,旨在提供清晰、系统的学习路径。 在...

    Java自学视频教程-JavaSE基础-Java基础语法-02、Java语言概述.mp4

    使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用...

    Java语言基础教程-Java NIO流篇2

    Java NIO(New IO)是Java 1.4版本引入的一个新模块,是对传统IO模型的补充和扩展...通过本教程的学习,开发者不仅可以掌握NIO的基本概念,还能了解其在实际开发中的应用,为编写高效、灵活的Java程序打下坚实的基础。

    SUN_JAVA 培训教程-翻译稿

    6. **网络**:涵盖Java网络编程的基础知识,如Socket编程等。 随着课程的进展,将会逐步深入到Java平台的更高级特性。 #### 授课对象 本课程适合具有一定编程基础的学习者,特别是有志于通过SUN认证考试的专业人士...

    JAVA程序员必读--基础篇

    最后,"JAVA程序员必读--基础篇"可能还会涵盖Java标准库中的常用类,如Math类、Date和Calendar类,以及用于网络编程的Socket和ServerSocket。 总之,这个教程将引导初学者逐步进入Java的世界,提供扎实的编程基础,...

    第13章-Java网络编程-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    Java网络编程是Java面向对象程序设计的一个重要领域,主要涉及如何利用Java API进行网络通信。在本章中,我们将深入探讨TCP/IP协议的基础知识以及Java中实现网络通信的关键工具类。 首先,TCP/IP协议是互联网通信的...

    Java自学视频教程-JavaSE基础-Java基础语法-04、Java入门HelloWorld.mp4

    使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用...

    Java基础教程-初学者快速上手

    本教程旨在为初学者提供一个全面的Java基础知识学习路径,帮助快速掌握编程技能。 1. **Java简介** Java是由Sun Microsystems公司(现已被Oracle收购)在1995年推出的,它的设计目标是“一次编写,到处运行”。...

    Java自学视频教程-JavaSE基础-Java基础语法-05、Java入门程序:常见问题.mp4

    使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用...

    java基础教程-pdf注释版-我的入门资料

    根据提供的文件信息,以下是关于Java基础教程的知识点梳理: 1. Java语言的起源与发展:Java语言是由Sun Microsystems公司于1995年发布的,由James Gosling领导的小组开发。Java语言的早期代号为“Oak”,后来被...

    java视频教程-MLDN

    本"java视频教程-MLDN"是由知名讲师李兴华精心制作,旨在为学习者提供一套全面、深入的Java学习资源。李兴华老师以其丰富的教学经验和深厚的编程功底,确保教程内容的专业性和实用性。 在本套教程中,你将学习到:...

    corejava--基础教程

    《CoreJava--基础教程》是一本专注于Java编程语言基础知识的权威指南。这本书涵盖了从Java语言的基本语法、数据类型到类和对象,再到异常处理、集合框架等核心概念,旨在为初学者提供一个全面且深入的学习路径。以下...

    Java自学视频教程-JavaSE基础-Java基础语法-03、Java环境搭建:JDK安装、常用命令.mp4

    使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用...

Global site tag (gtag.js) - Google Analytics