热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

11Java程序员面试宝典视频课程之网络编程

一、什么是计算机网络?网络的主要类型有哪些;答:计算机网络是将不同地理位置的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来&#

一、什么是计算机网络?网络的主要类型有哪些;
答:
计算机网络是将不同地理位置的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

网络的主要类型:
一、网络的地理覆盖范围分:
A、局域网:
1、属于一个组织,一个单位或一个部门所有。
2、网络一般不对外提供公共服务,管理方便,安全保密性高。
3、组建方便,投资少,见效快,使用灵活应用最普遍的计算机网络.
B、城域网:
1、一般是一个地区或一个城市
C、广域网:
1、小到一个地区,一个城市,大到一个国家,几个国家乃至全世界
2、提供大范围的公共服务。因特网就是典型的广域网。
3、与局域网相比,广域网投资大,安全保密性差,传输速率慢。

二、按计算机网络的线路结构分:
A、总线型
1、 该结构采用一条公共总线作为传输介质,每台计算机通过相应的
硬件接口入网。信号沿总线进行广播式传送
2、是典型的共享传输介质的网络。从信源所发的信息会传送到介质
长度所及之处,被其他所有站点看到。如果有两个以上的节点同
时发送数据,可能会造成冲突,就像公路上的两车相撞一样。
优缺点:
优点:布线容易;增删容易;节约电缆;
缺点:
1、任何两个站点传送信息都要经过总线,总线称为传输瓶颈;
当计算机站点多时,容易造成信息阻塞,传递不畅。
2、一台计算机接入总线的接口发生故障,会造成整个网络瘫痪。
3、当网络发生故障时,故障诊断和隔离困难。
B、星型
由一台中央节点和周围的从节点组成。中央节点和从节点可以直接
通信,而从节点必须经过中央节点转接才能通信。
优缺点:
优点:
1、可靠性高。每台计算机及其接口的故障不会影响其他计算机,不会影响整个网络,也不会造成网络瘫痪。
2、故障诊断和隔离容易,网络容易管理和维护。
3、可扩性好,配置灵活。增删改一个站点容易实现,和其他计算机没有关系
4、传输速率高。每个节点独占一条线路,消除了信息阻塞的情况。而总线和环形网络的瓶颈都在线路上。
缺点:
1、线缆使用量大。
2、布线、安装工作量大。
3、网络可靠性依赖于中央节点。如交换机或集线器选择不当,发生故障
会造成全网瘫痪。
C、环型
1、计算机通过硬件接口入网,这些接口首尾相连成一条链路。信息传送
也是广播式的,沿着一个方向(如逆时针方向)单向逐点传送。
优点:
点到点且沿一个方向单向传输,非常适合用光纤作为传输介质。
1、传输距离远,适合做主干网。
2、故障诊断容易定位。
3、初始安装容易,线缆用量少。环形线路也是一条总线,只是首尾封
闭。
image_1c9vliksrrtgri6196egmq10o39.png-13.8kB

三、按传输介质分:
A、有线网络
1、同轴电缆:成本低,安装方便,但传输率低,抗干扰能力一般,
传输距离短
2、双绞线:组建局域网时常用,优缺点类似于同轴电缆。
3、光纤:主要用于网络的主干部分,其特点是成本高,安装技术要
求高,传输距离长,传输率高,抗干扰能力强,且不会受到电子
监听设备的监听等,是组建高安全性网络的理想选择。
B、无线网络
1、红外线;
2、微波;
3、无线电;

二、常见的网络分层模型有哪两个?哪个更流行?为什么?
答:
1、OSI/ISO 参考模型
OSI:(Open System Interconnection),开放式网络互连;
ISO:(International Standard Organization),国际标准化组织;
OSI 参考模型把网络模型分成7层,每一层为上一层提供服务,并为其上一层
提供一个访问接口或界面。
因OSI模型设计得过于庞大、复杂,不易应用;于是TCP/IP协议栈获得了更为广泛的应用。

2、TCP/IP 协议栈:4 层网络模型.
在这里插入图片描述

三、请说出 TCP 和 UDP 的区别?
答:
TCP:
一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议
特点:
1、面向连接;
2、点到点的通信;
3、高可靠性;

UDP:
一种无连接的、提供面向事务的简单不可靠信息传送服务的传输层通信协

特点:
1、非面向连接;
2、传输不可靠,数据容易丢失;
3、发送不管对方是否准备好,接收方收到也不确认;
4、可以广播发送;
5、非常简单的协议,开销小;

四、详细描述 TCP 的机制;
答:
1、客户端发送连接请求给服务器端,等候服务器端确认;
2、服务器端收到客户端发来的请求,向客户端发送确认连接信息;
3、客户端接到服务器端发送来的确认连接信息,也要向服务器端再发送
一次确认连接信息。客户端和服务器端进入准备传送数据状态。

五、IP 的全称是? IP 的作用是?:
答:
IP:
Internet Protocol address,互联网协议地址
IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。
作用:
用来标志网络中的一个通信实体的地址.

六、为什么需要端口?端口是真实存在的还是虚拟的概念?
答:
1、 IP 地址用来标志一台计算机,但是一台计算机上可能提供多种网络应用程序,使用端口来区分这些应用程序。
2、端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。
3、端口范围 0—65535。

七、 UDP 和 TCP 端口是各自独立的吗?
答:
TCP/IP 传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。

八、 URL 类有什么作用?
答:
1、URL:Uniform Resource Locator,统一资源定位器;俗称“网址”
2、由 4 部分组成:
协议: http;
存放资源的主机域名:www.baidu.com;
端口号:8080;
资源文件名: index.html;
3、URL 是指向互联网“资源”的指针。

九、【编程题】网络对话编程。

/**Socket 客户端
*/

public class MySocket {Socket socket=null;BufferedReader bufferedReader=null;PrintWriter printWriter =null;BufferedReader bufferedReader1 =null;public MySocket(){try {System.out.println("等待发送..............");//设置客户端的IP及连接服务器的端口socket = new Socket("127.0.0.1",65535);//捕捉发送给服务器的信息bufferedReader = new BufferedReader(new InputStreamReader(System.in));String str = bufferedReader.readLine();//捕捉发送给服务器的信息,打包printWriter = new PrintWriter(socket.getOutputStream());//接收服务器的反馈信息bufferedReader1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));//循环模式 while(true){//捕捉发送给服务器的信息,打包printWriter.println(str);//跟催printWriter.flush();//接收服务器的反馈信息str = bufferedReader1.readLine();System.out.println("客户收到"+str);//捕捉发送给服务器的信息str = bufferedReader.readLine();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {//关闭接口bufferedReader1.close();printWriter.close();bufferedReader.close();socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {// TODO Auto-generated method stubnew MySocket();}
}
/**ServerSocket服务端
*/

public class MyServerSocket {ServerSocket serverSocket = null;Socket socket = null;BufferedReader bufferedReader = null;BufferedReader bufferedReader1 = null;PrintWriter printWriter = null;public MyServerSocket(){try {//设置服务器的端口65535serverSocket = new ServerSocket(65535);System.out.println("等待请求............");//设置监听客户端socket =serverSocket.accept();//接收客户端的信息String str;bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));//服务器反悔给客户端信息 bufferedReader1 = new BufferedReader(new InputStreamReader(System.in));//服务器反悔给客户端信息 打包 printWriter =new PrintWriter(socket.getOutputStream());//所有信息循环while(true){//接收客户端的信息str = bufferedReader.readLine();System.out.println("服务器"+str);//服务器反悔给客户端信息 str = bufferedReader1.readLine();//服务器反悔给客户端信息 打包 printWriter.println(str);printWriter.flush();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {//关闭接口printWriter.close();bufferedReader1.close();bufferedReader.close();socket.close();serverSocket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} public static void main(String[] args) {// TODO Auto-generated method stubnew MyServerSocket();}
}

推荐阅读
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 在试用版软件中,为了提升用户体验并有效提醒用户剩余的使用次数,本文通过Java IO文件操作实现了一个试用版软件的使用次数提示机制。具体而言,每次启动软件时,程序会读取存储在文件中的剩余使用次数,并在每次执行后更新该数值。当用户启动软件时,系统会显示当前剩余的使用次数,确保用户清楚了解自己的试用状态。该机制不仅提高了软件的友好性,还增强了用户的购买意愿。 ... [详细]
  • 在Linux系统中,通过使用`read`和`write`函数可以实现文件的高效复制操作。`open`函数用于打开或创建文件,其返回值为文件描述符,成功时返回一个有效的文件描述符,失败时返回-1。`path`参数指定了要操作的文件路径,而`oflag`参数则定义了文件的打开模式和属性。此外,为了确保数据的完整性和一致性,还需要合理处理文件读取和写入过程中的错误和异常情况。 ... [详细]
  • 在CICS应用环境中,众多客户端通过网络与CICS服务器进行连接。系统管理员可以通过CICS系统交易CEMT查询当前连接的客户端信息。然而,在非客户端模式下,识别用户连接并解决信息获取错误的问题变得更为复杂。本文将探讨如何在CICS服务器端准确识别非客户端模式的用户连接,并提供有效的解决方案,以确保系统的稳定性和数据的准确性。此外,还将介绍一些常用的诊断工具和技术,帮助管理员快速定位和解决问题。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
author-avatar
饮娃_456
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有