Java网络教程-基础
Java提供了非常易用的网络API,调用这些API我们可以很方便的通过建立TCP/IP或UDP套接字,在网络之间进行相互通信,其中TCP要比UDP更加常用,但在本教程中我们对这两种方式都有说明。
在网站上还有其他三个与Java网络相关的教程,如下:
3.Java服务器多线程教程 (参与翻译可以联系我们)
尽管Java网络API允许我们通过套接字(Socket)打开或关闭网络连接,但所有的网络通信均是基于Java IO类 InputStream和OutputStream实现的。
此外,我们还可以使用Java NIO API中相关的网络类,用法与Java网络API基本类似,Java NIO API可以以非阻塞模式工作,在某些特定的场景中使用非阻塞模式可以获得较大的性能提升。
Java TCP网络基础
通常情况下,客户端打开一个连接到服务器端的TCP/IP连接,然后客户端开始与服务器之间通信,当通信结束后客户端关闭连接,过程如下图所示:
客户端通过一个已打开的连接可以发送不止一个请求。事实上在服务器处于接收状态下,客户端可以发送尽可能多的数据,服务器也可以主动关闭连接。
Java中Socket类和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类介绍中会有更多介绍。
转载自 并发编程网 - ifeve.com
JAVA实现网络多线程编程小游戏开发 实验总结:五子棋是一个很简单的游戏,但是如果认真对待,一个代码一个代码的去研究,会收获到很多知识,会打好学习基础。方便以后开发更高、更难的项目时打下稳固的基础。在自己开发的过程中会有各种意想不到的bug,通过查阅资料及询问老师同学进行解决对本身的一个代码能力会有一个质的增长,同时这也是一个非常快乐的过程。有进步,总归是好事。
写给大忙人看的 - Java中拉取网络图片上传至MinIO服务器(5) 在日常开发过程中,我们会需要将第三方授权的用户头像上传保存至我们自己的服务器 例如:微信用户头像,在用户更改头像后,原先的头像地址会失效,这时我们如果直接使用该用户的微信头像图片地址,则会失效
终于有清华大佬深入计算机底层总结出这份图解Java底层/网络手册 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。 从最初由约翰·冯·诺依曼发明之后经过代代的不断改良和迭代增加到现在已经发展了几十年之久,计算机可以说是20世纪最先进的科学发展之一
相关文章
- JAVA基础之訪问控制权限(封装)
- netty系列之:java中的base64编码器
- Java LinkedList 和 ArrayList
- java基础—Properties集合
- java在Linux执行命令Java在Windows执行命令
- Java中toArray的用法探究(java数组与list转换)
- 《Java编码指南:编写安全可靠程序的75条建议》—— 第1章 安全
- 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.12 练习
- 1. java.util.concurrent - Java 并发工具包
- JAVA语言的本质优势
- java基础day12---this 关键字-----参数传递
- 深入理解Java:注解(Annotation)-- 注解的本质是寄生信息
- Java 静态泛型方法为什么要在返回值之前使用泛型
- Java实现cache的基本机制
- (JAVA基础编程练习):斐波拉契数列问题。
- 《The java.util.concurrent Synchronizer Framework》 JUC同步器框架(AQS框架)原文翻译
- Java_jdbc 基础笔记之十 数据库连接 (ResultSetMetaData 类)
- Java_jdbc 基础笔记之二 数据库连接
- Java_解决java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
- 关于java.lang.IllegalStateException
- Java之使用HttpClient发送GET请求
- Java基础篇:回调机制详解
- Java基础:抽象类和接口
- java基础—网络编程———建立聊天的形式
- java 输入一个字符串,打印出该字符串中字符的所有排列
- Java小白入门200例63之判断数组是否相等(数组比较)