Java 网络编程----基本概念

网络现在是一个非常普遍的概念。

以下是维基百科上的解释:

网络一词有多种意义,可解作:

java网络编程关系的是以IP地址为基础的编程。

IP,TCP,UDP

IP是Internet Protocol的缩写,也就是网络间互联的协议。

IP的设计相较于其他的类似协议有一些优点。

首先,IP最初是用于开发军事网络的,所以必须保证协议的健壮。

所以IP之间可以包含多个路由。这样一旦某个路由被毁掉,它们间还可以保持通讯。

为了保证IP间传递的顺序是有序,以及数据的可靠性,于是在IP上层有了TCP协议。

Transmission Control Protocol 传输控制协议,TCP是一套精确的保证传输有效性,和正确性的协议。

当然这些都是需要代价的,因此,如果数据的顺序不是很重要,单个包的丢失也不要紧,那么可以使用UDP协议。

User Datagram Protocol的简称, 中文名是用户数据报协议。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

TCP & UDP比较:

确切的理解应该是TCP/IP 协议 & UDP/IP协议 的区别:

小结TCP与UDP的区别:
1.基于连接与无连接;TCP连接需要三次握手,断开需要4次握手。
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;TCP是流模式传递,而UDP是包模式。
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

IP地址和域名

IP协议同时支持这2中地址方式:192.0.1.2 或者www.abc.com.cn, 后一种是域名的方式。

域名 是的发明是应为人类对数字的记忆和区分不如文字来的方便。

端口

每台计算机,往往是服务器,可以运行很多服务。这个时候我们需要区分这些业务,当IP地址是一样的,于是就

有了端口这个东西。

端口是抽象的概念,理论上最多可以有65535个端口。

1-1023是计算机保留给已知的一些功能的,比如默认的web连接端口是80.

Internet:

Internet是世界上最大的基于IP协议的网络,互联网。

互联网并不等同万维网(WWW),万维网只是一个基于超文本相互链接而成的全球性系统,且是互联网所能提供的服务其中之一。互联网带有范围广泛的信息资源和服务,例如相互关系的超文本文件,还有万维网的应用,支持电子邮件的基础设施,点对点网络文件共享,以及IP电话服务。

内部网络和外部网络

当我去电信安装宽带的时候,电信会给我的路由器分配一个地址:216.254.86.72

这个地址就是我在跟外部其他设备通讯的地址。

但是我本生家里有很多设备,几台电脑,手机,以及机顶盒等等。这些都通过路由器来连接网络。

这样路由器作为DNS给每个设备分配一个地址192.168.0.3等。 这些地址是不固定的。

从我的电脑和百度连接的时候,百度看到的地址是路由器转换后的地址216.254.86.72。

但是从百度返回的数据,怎么就回到了192.168.0.3这台设备呢,这个是路由器解决的,java编程的时候,不需要关心。

防火墙

为了组织某些有害的数据到我们的设备。有一个东西可以更具域名和端口来挡住这些东西,这就是防火墙。

Java和防火墙关系不大。

代理服务器:

代理服务器可以理解为中间人。外部服务器只能看到代理服务器在向他发送请求,而不知道内部的情况。

Internet标准:

现在定义internet的标准是2大组织:

IETF 和W3C。

IETF:TCP/IP MIME SMTP

W3C:HTTP HTML XML

时间: 2024-10-12 22:35:39

Java 网络编程----基本概念的相关文章

Java网络编程基础【转】

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.

第13篇-JAVA 网络编程

第13篇-JAVA 网络编程 每篇一句 比我强大的人都在努力我还有什么理由不拼命 初学心得 不去追逐你所渴求你将永远不会拥有 (笔者JEEP/711)[JAVA笔记 | 时间:2017-04-22| JAVA 网络编程 ] 1.网络编程基本概念 1.什么是计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备通过通信线路连接起来在网络操作系统网络管理软件及网络通讯协议的管理和协调下实现资源共享和信息传递的计算机系统 把分布在不同地理区域的计算机与专门的外部设备用通讯线路互

Java 网络编程(Elliotte Rusty Harold)

最近看了本Java网络编程方面的书,系统化一下Java网络编程,主要内容如下: 1.网络基础篇 这里包括基础的网络概念/ 输入输出流BIO/ Internet地址/URI/URL/HTTP/URLConnection 2.多线程篇 这里包括线程池/线程调度/死锁/同步 3.Socket篇 这里包括客户端Socket/服务端Socket/UDP Socket(IP组播) 4.NIO篇 这里包括缓冲区/通道/就绪选择 总结知识树

【转】JAVA网络编程基础

转来自己学习用 转自http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电

java网络编程入门教程

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.

Java网络编程技术2

3. UDP数据报通信 UDP通信中,需要建立一个DatagramSocket,与Socket不同,它不存在“连接”的概念,取而代之的是一个数据报包——DatagramPacket.这个数据报包必须知道自己来自何处,以及打算去哪里.所以本身必须包含IP地址.端口号和数据内容. 3.1 示例程序——用UDP实现的聊天程序 用UDP协议通信不需要使用服务器,所以用于聊天的程序只要写一个,分别在不同的机器上运行就可以了,而无须写成服务端和客户端两种形式. 例9. 用UDP实现的聊天程序示例. pack

Java网络编程——Socket

网络是连接不同计算机的媒介,不同的计算机依靠网络来互相通信,即传递数据. Java中与网络编程相关的部分主要是Socket(套接字),它作为一种抽象的结构,实现了与通信相关的各类方法,构成一套完整的通信机制. 当然,Socket本身是独立于编程语言之上的概念,就像数据结构与算法一样,它并不属于Java,而是一种公认的通信的解决方案,大部分语言都实现了与socket相关的通信功能. 原理 Socket通过使用TCP(传输控制协议)提供了两台计算机之间的通信机制.具体的方式是:服务器处会首先创建Se

Java - 30 Java 网络编程

Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节. java.net包中提供了两种常见的网络协议的支持: TCP: TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信.通常用于互联网协议,被称TCP / IP. UDP:UDP是用户数据报协议的缩写,一个无连接的协议.提供了应用程序之间要发送的数

Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO

Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO Java 非阻塞 IO 和异步 IO 转自https://www.javadoop.com/post/nio-and-aio 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2p