Java面试必备题库,你有自信面试了吗?
题目一览
20、说明socket是什么?
21、为什么需要端口?端口是真实存在的还是虚拟的概念?
22、Java中,端口使用两个字节表示,可以表示多少个端口? UDP和TCP端口是各自独立的吗?
23、URL类有什么作用?
24、基于TCP的Socket网络编程的主要步骤是什么?
25、【上机】写出建立TCP服务器ServerSocket的代码。并说明accept方法有什么特点?
从上图可以看到:底层的东西已经被内核实现了,即我们通常意义上的内核协议栈(传输层,网络层,链路层)
最上面的Application(应用层)是我们用户所要实现的,它是属于用户进程的一部分,工作在用户空间,那么用户空间的程序要想访问内核,使用内核的服务,就需要一个接口,去访问所需要的服务
对于网络编程来说,这个接口就是套接口(Socket)。
Socket:可以看作用户进程和内核网络协议栈编程(交互)接口
Socket:不仅可以在同一台主机上进行通信,也可以在网络上不同的主机间进行通信,也可以异构(软硬件平台不同)进行通信(手机qq和PC机上的qq进行通信,手机的系统是ARM,而PC机是x86)
IP地址用来标志一台计算机,但是一台计算机上可能提供多种网络应用程序,使用端口来区分这些应用程序。
端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。
端口范围0---65535,16位整数。
22、Java中,端口使用两个字节表示,可以表示多少个端口? UDP和TCP端口是各自独立的吗?
端口范围0---65535,16位整数。
由于TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,如TCP有一个255号端口,UDP也可以有一个255号端口,二者并不冲突。
URL:Uniform Resource Locator,统一资源定位器;俗称“网址”,如:
"http://www.baidu.com:80/index.html#aa?cansu=bjsxt“
由4部分组成:
l 协议: http;
l 存放资源的主机域名:www.baidu.com;
l 端口号:80;
l 资源文件名: index.html#aa?cansu=bjsxt;
URL是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。
基于TCP协议的Socket编程的主要步骤
服务器端(server):
客户端(client):