java网络基础知识的简述
TCP/UDP的介绍
TCP协议:面向连接的,字节流无差错地传输协议。
UDP协议:一个不可靠的无连接的数据传输协议。
说明:TCP可以想象成电话通讯,双方在通话时必须建立连接,一方没听清,会要求对方重说,而UDP相当于是发短信,发送方发送短信时并不管对方是否在信号区,也不管对方是否能接收到。
比较:UDP比TCP传输效率高,TCP更占带宽,还有数据校验也花时间,UDP有传输数据量有限制,而TCP无限制。
总结:若不要求数据传输的可靠性,而追求效率,则用UDP协议即可,比如视频会议系统。
—————————————————————————————————————————
java网络编程类
与网络编程的相关类在java.net中,重要的类如下:
InetAddress类:表示互联网地址,它封装了IP地址和域名相关的操作方法,该类无构造方法,都是
通过该类提供的静态方法来创建该类的实例对象。
URL类:描述信息资源的字符串,主要用于万维网客户程序和服务器程序上。URL用统一的格式描述各种信息资源,包括文件、服务器的地址和目录。特点:获得URL的信息(路径、端口号、主机、文件名),建立连接(用IO流和抛出异常的方式)等。
URLConnection类:一个抽象类,代表应用程序与URL之间的通讯连接。该类的实例用于读写此URL所引用的资源。用POST、GET方法或其他HTTP请求方式将数据发送到服务器。使用URLConnection对象具体操作分6步(细节参看蓝白书P310页,简述为创建、连接、查看、输出或输入)。
——————————————————————————————————————
套接字(Socket):是一个通讯端点,是应用程序用来在网络上发送或接收数据包的对象。它允许把
网络当成一个流,通过流的方式实现数据交换。
套接字的类型分两种:
1.流式套接字:确保数据以正确无重复地被送达。(用于TCP协议)
2.数据包套接字:不能确保数据能被送达,也无法确保发送顺序。(用于UDP协议,用于多播,比如多个接受者)
说明:这两种协议都是双向的,即都可以同时在两个方向(网络通讯的两端)进行读写数据。
————————————————————————————————————————
1.基于TCP协议的网络编程
1)Socket类
Socket叫做客户端套接字,用于执行客户端的TCP操作。常用构造方法如下:
Socket(String host,int port)创建一个流式套接字,并把它连接到指定主机的端口。
Socket(InetAddress address, int port)创建一个流式套接字,并把它连接到指定的IP地址的指定端口号。
2)ServerSocket类
ServerSocket叫做服务器套接字,每个服务器套接字运行在服务器上的特定端口,监听在这个端口的TCP连接。当远程客户端的Socket试图与服务器指定端口建立连接时,服务器被激活时,打开两个主机间的固有连接。一旦客户端与服务器建立了连接,两者间就可以传输数据。
可以通过构造函数来获取服务器Socket实例对象,构造方法如下:
ServerSocket()创建非绑定的服务器套接字 ……
3)TCP客户端编程步骤
客户端是指网络编程中首先发起连接的程序,实现程序界面和基本逻辑实现。
//疑问:这么说服务器端和客户端是相对的?我记得发送方与接收方是相对的。
客户端编程的三个步骤:1)建立网络连接(指定连接到的服务器的IP和端口号,形成虚拟连接)
2)交换数据(服务器和客户端之间相互通信,用IO流实现)
3)关闭网络连接(关闭连接,释放资源)
4)TCP服务器端编程步骤
服务器端是指网络编程中被动等待连接的程序,用来实现程序的核心逻辑以及数据存储等核心功能。
服务器端的四个编程步骤:1)监听端口(等待连接,服务器启动后,监听一个提供给客户端的端口,服务器IP就是本机IP)
2)获得连接(获取客户端信息,并提供线程来处理连接对象)
3)交换数据(接受客户端的信息并处理并返回给客户端)
4)关闭连接(关闭服务器监听端口,并释放内存资源)
java网络基础知识的简述的更多相关文章
- Java 网络编程(一) 网络基础知识
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...
- JAVA相关基础知识
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...
- iOS网络基础知识
iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- java必备基础知识(一)
学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...
- 什么才是java的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- Linux运维笔记(一)网络基础知识
网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...
- java部分基础知识整理----百度脑图版
近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...
随机推荐
- Saltstack之job管理和runner
Master端执行命令及操作默认会保存在master端的/var/cache/salt/master/jobs 默认保存时间是24小时 如果需要保存在数据库 先参考http://www.cnblogs ...
- POJ-2356 Find a multiple(DFS,抽屉原理)
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7133 Accepted: 3122 Speci ...
- 极大既然估计和高斯分布推导最小二乘、LASSO、Ridge回归
最小二乘法可以从Cost/Loss function角度去想,这是统计(机器)学习里面一个重要概念,一般建立模型就是让loss function最小,而最小二乘法可以认为是 loss function ...
- 基于Docker部署nodejs应用
基于Docker部署nodejs应用 背景 公司基于Vue.js的项目最近需要部署到云端,因此需要先行在公司内部Docker环境下验证相关技术,因而有本文之前提. 本文展示在Docker容器中,应用部 ...
- 2018java面试知识汇总
1. 多线程 1.1 多线程7种同步方法? 答:同步方法 同步代码块 使用重入锁实现线程同步(ReentrantLock) 使用特殊域变量(volatile)实现同步(每次重新计算,安全但并非一致) ...
- 设置自己的APP能打开文件(在其他应用中打开显示自己的应用)
http://blog.csdn.net/leewolf130/article/details/29568961 http://www.jianshu.com/p/9711c3daf4bb https ...
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性
静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明为static的方法有以下几条限制: 它们仅能调用其他的static 方法. 它 ...
- Shuffle'm Up---poj3087
题目链接 题意:有两个字符串s1,s2:经过交叉问是否得到字符串s,不能输出-1,能就输出交叉的次数 每次重组的串都是s2开始,重新组合时,前面一半是s1,后一半s2: #include<std ...
- kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录
1.基本概念 Jenkins在DevOps工具链中是核心的流程管理中心,负责串联系统的构建流程.测试流程.镜像制作流程.部署流程等,在持续集成中常用到的工具如下: Maven:源代码编译工具 Robo ...
- latex 安装和使用
1:下载 texlivewindows 版 http://tug.org/texlive/acquire-netinstall.html 2:双击exe文件进行安装,安装时选择 将路径添加到环境变量 ...