sokaoti.com
北京影谱科技股份有限公司7月招聘面试题93道202074

HTTP状态码302与307完全同义。()

此题为判断题(对,错)。


正确答案:对


HTTP常用状态码表明表明浏览器需要执行某些特殊的处理以正确处理请求的有()

A.200

B.301

C.302

D.204


正确答案:BC


HTTP状态中302、403、500代码含义?


答案:302:临时重定向403:服务器拒绝请求500:服务器内部错误


HTTP常用状态码表明请求被正常处理的有()。

A.200

B.301

C.302

D.204


参考答案:AD


阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。

[说明]

使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。

创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。

[C++程序]

[ListenEX()函数]


正确答案:这是一道要求读者使用Socket与另一个Windows应用程序或者与任何支持Socket的应用程序通信的编程题。本题的解答思路如下。 题干已给出“函数ListenEx()用于通知Socket开始监听客户应用程序”ListenEx()通过调用CSocket的Listen()函数监听来自客户应用程序的连接请求。ListenEx()同时在结构中设置其调用参数这些参数最终被传递到RecvThread()函数以实现读操作。因此()空缺处应填入“Listen()”。 函数OnAccept()在接收到连接请求时被调用。它使用文本编辑器(TextEdit)重载CSocket的OnAccept()函数在其中将创建新的Socket用于建立与客户应用程序的连接同时使用由用户定义的标识符作为关键字将该Socket保存到对象映射表中。然后设置Socket进入同步模式并创建一个线程从套接字中读取数据。因此(2)空缺处应填入“newCSocket”用于完成初始化工作。 函数RecvThread()使用CSocket的Receive()函数等待直到通过套接字接收到新的报文。该线程假定每一个报文包含固定字长的报头和可变长度的报文体。对于每一个新的套接字报文RecvThread()还向应用程序发送WM_New_MESSAGE消息通知新的报文等待处理。如果套接字关闭线程将在终止前向应用程序发送WM_DONE_MESSAGE消息所以(3)空缺处应填入“len+=res”。该函数没有返回值所以(4)空缺处应填入“return 0”。 接下来添加函数SendEx()向客户应用程序发回报文该函数将根据用户定义的标识符从对象映射表中取出Socket对象然后调用线程函数向该Socket发送报文因此(5)空缺处应填入“m_mapSockets[id]”。 SendThread使用CSocket类的Send()函数将报文数据发送出去因此(6)空缺处应填入“Send”。 服务器套接字类中的最后需要创建关闭函数这个函数不仅将关闭监听套接字而且将关闭创建的所有与客户端连接的套接字因此(7)空缺处应填入“Close()”。
这是一道要求读者使用Socket与另一个Windows应用程序或者与任何支持Socket的应用程序通信的编程题。本题的解答思路如下。 题干已给出“函数ListenEx()用于通知Socket开始监听客户应用程序”,ListenEx()通过调用CSocket的Listen()函数监听来自客户应用程序的连接请求。ListenEx()同时在结构中设置其调用参数,这些参数最终被传递到RecvThread()函数以实现读操作。因此()空缺处应填入“Listen()”。 函数OnAccept()在接收到连接请求时被调用。它使用文本编辑器(TextEdit)重载CSocket的OnAccept()函数,在其中将创建新的Socket,用于建立与客户应用程序的连接,同时使用由用户定义的标识符作为关键字将该Socket保存到对象映射表中。然后,设置Socket进入同步模式,并创建一个线程从套接字中读取数据。因此(2)空缺处应填入“newCSocket”,用于完成初始化工作。 函数RecvThread()使用CSocket的Receive()函数等待,直到通过套接字接收到新的报文。该线程假定每一个报文包含固定字长的报头和可变长度的报文体。对于每一个新的套接字报文,RecvThread()还向应用程序发送WM_New_MESSAGE消息,通知新的报文等待处理。如果套接字关闭,线程将在终止前向应用程序发送WM_DONE_MESSAGE消息,所以(3)空缺处应填入“len+=res”。该函数没有返回值,所以(4)空缺处应填入“return 0”。 接下来添加函数SendEx()向客户应用程序发回报文,该函数将根据用户定义的标识符从对象映射表中取出Socket对象,然后调用线程函数向该Socket发送报文,因此(5)空缺处应填入“m_mapSockets[id]”。 SendThread使用CSocket类的Send()函数将报文数据发送出去,因此(6)空缺处应填入“Send”。 服务器套接字类中的最后需要创建关闭函数,这个函数不仅将关闭监听套接字,而且将关闭创建的所有与客户端连接的套接字,因此(7)空缺处应填入“Close()”。


北京影谱科技股份有限公司7月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:、isinstance作用以及应用场景?可用的回答 : isinstance(obj, cls) 检查一个obj是否是cls的一个对象 问题 Q2: Tornado 的核心是什么?可用的回答 : Tornado 的核心是 ioloop 和 iostream 这两个模块, 前者提供了一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。 通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket, 再搭配相应的回调函数,便可达到梦寐以求的高效异步执行。 问题 Q3:常见的HTTP状态码有哪些?可用的回答 : 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 410 Gone 500 Internal Server Error 501 Not Implemented 问题 Q4:你对Django的认识?可用的回答 : Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 Django内置的ORM跟框架内的其他模块耦合程度高。 应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利; 理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。 Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。 Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。 Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。 问题 Q5:你常用的mysql引擎有哪些?各引擎间有什么区别?可用的回答 : 主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下: 一、 InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。 事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了; 二、 MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用; 三、 InnoDB 支持外键,MyISAM 不支持; 四、 MyISAM 是默认引擎,InnoDB 需要指定; 五、 InnoDB 不支持 FULLTEXT 类型的索引; 六、 InnoDB 中不保存表的行数,如 select count(*) from table 时,InnoDB; 需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。 注意的是,当 count(*)语句包含 where 条件时 MyISAM 也需要扫描整个表; 七、 对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立联合索引; 八、 清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表; 九、 InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like %lee% 问题 Q6:说说什么是爬虫协议?可用的回答 : Robots协议(也称为爬虫协议、爬虫规则、机器人协议等)也就是robots.txt, 网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。 Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯。因其不是命令,故需要搜索引擎自觉遵守。 问题 Q7:Python中的生成器是什么?可用的回答 :实现迭代器的方法称为生成器。这是一个正常的函数,除了它在函数中产生表达式。问题 Q8:、isinstance作用以及应用场景?可用的回答 : isinstance(obj, cls) 检查一个obj是否是cls的一个对象 问题 Q9:简述 生成器、迭代器、可迭代对象 以及应用场景?可用的回答 : Python可迭代对象(Iterable) Python中经常使用 for 来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象,像常见的 list , tuple 都是。 如果给一个准确的定义的话,就是只要它定义了可以返回一个迭代器的 _iter_ 方法, 或者定义了可以支持下标索引的 _getitem_ 方法,那么它就是一个可迭代对象。 Python迭代器(iterator) 迭代器是通过 next() 来实现的,每调用一次他就会返回下一个元素,当没有下一个元素的时候返回一个 StopIteration 异常, 所以实际上定义了这个方法的都算是迭代器。 Python生成器(Generators) 生成器是构造迭代器的最简单有力的工具,与普通函数不同的只有在返回一个值的时候使用 yield 来替代 return , 然后 yield 会自动构建好 next() 和 iter() 因为迭代器如此普遍,python专门为for关键字做了迭代器的语法糖。 在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。 问题 Q10:什么是序列化和非序列化?可用的回答 :Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为unpickling算法题面试官常问到的一些算法

建立Socket类的客户端需要哪些步骤?()

A.如果连接成功,则可以通过此Socket对象进行通讯;

B.如果连接成功,则重新创建一个Socket对象用于通讯;

C.向指定的IP地址和端口号进行连接尝试;

D.创建一个Socket对象;

E.首先通过网络扫描工具扫描服务器端是否已经开通;


参考答案:A, C, D


下列______步骤对于编写不同的Socket程序是不同的。

A.关闭Socket

B.打开Socket

C.对Socket进行I/O操作

D.打开连接到Socket的I/O流


正确答案:C


在C#中利用SOCKET 进行网络通信编程的一般步骤是什么?


正确答案:
 


对Socket进行I/O操作的方法是______和______。


正确答案:getlnputStream() getOutputStream()
getlnputStream() getOutputStream()


阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。

【说明】

1.HTTP

◆ HTTP请求消息示例

GET/index,htmlHTTP/1.1

Accept:image/gif,image/jpeg,*/*

Accept-Language:zh-ch

Accept-encoding:gzip,deflate

User-Agent:Mozilla/4.0(compatible: MSIE6.0;Windows 2003)

Host:localhost:8080

Connection:Keep-Alive

◆ HTTP响应消息示例

HTTP/1.1 200 OK

Servert:Microsoft-IIS/6.0

Date:Mon,3 Jan 2008 13:13:33 GMT

Content-Type:text/html

Last-Modified:Mon,11 Jan 2008 13:23:42 GMT

Contelit-Length:112

<html>

...

</html>

2.相关类及主要成员函数

◆ ServerSocket类

服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象,类中的主要成员函数如表6-16所示。

◆Socket类 基于连接的套接字,类中的主要成员函数如表6-17所示。

【Java源程序:一个简单的Web服务器】

/* WebScrvc.java */

packageobjclass;

import java.net.*;

import java.io.*;

public class WebServer{

public static final int PORT=8080; //Web服务器侦听的端口号

public static final String WEB_ROOT= SyStem.getProperty("user.dir")+

File.separator+"webroot";

//WEB_ROOT变量存放Web服务器工作目录,HTML, GIF图片等静态文件资源

private static final String SHUTDOWN_COMMAND="/shutdown";

//SHUTDOWN_COMM_AND变量保存关闭服务器的命令

private Boolean shutdown=false; //是否收到关闭服务器命令的标志

public static void main(Sting[] args) {

WebServer server=new WebServer();

Server.await ()

}

public void await() {

ServerSocket serverSocket = null;

try {

serverSocket = new (1);

//创建侦听端口号为PORT的ServerSocket类型的对象

System.out.println ("WebServerStarted!");

}

catch(IOException e) {

e.printStackTrace ();

SyStem. exit (1);

}

while(!shutdown) { //循环等待客房端连接

Socket socket = null;

InputStream input = null;

OutputStream utput = null;

try{

Socket =(2); //创建来自客房端的连接套接字

Input = socket.(3); //创建输入流

utput = socket.(4); //创建输出流

Request reque


正确答案:(1)ServerSocket(PORT)或serverSicket(PORT1InetAddress.getByName(“127.0.0.1”)) (2)serverSocket.accept()或其等价的带参数形式 (3)getInputStream()或其等价的带参数形式 (4)getOutputStream()或其等价的带参数形式 (5)parse()或其等价的带参数形式 (6)sendStaticResource()或其等价的带参数形式 (7)socket.close() (8)getUrl()
(1)ServerSocket(PORT)或serverSicket(PORT,1,InetAddress.getByName(“127.0.0.1”)) (2)serverSocket.accept()或其等价的带参数形式 (3)getInputStream()或其等价的带参数形式 (4)getOutputStream()或其等价的带参数形式 (5)parse()或其等价的带参数形式 (6)sendStaticResource()或其等价的带参数形式 (7)socket.close() (8)getUrl() 解析:这是一道要求读者掌握Socket通信的基本模型和Java的基本调用方法的综合分析题。本题的解答思路如下。
基于Socket的客户/服务器通信模式的基本模型。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Server Model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于两点:①建立计算机网络的原因是网络中软硬件资源运算能力和信息不均等,需要进行资源共享,从而需要拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;②网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,也不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步。
客户/服务器模式在操作过程中采取的是主动请求方式。首先,服务器方要先启动,并根据请求提供相应服务。服务器方的操作过程如下。
1)打开一通信通道并告知本地主机,它愿意在某一公认地址上(即默认端口,如HTTP为80)接收客户请求;
2)等待客户请求到达该端口:
3)接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新进程来处理这个客户请求,新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止:
4)返回第2)步,等待另一客户请求:
5)关闭服务器。
客户方的操作过程如下。
1)打开一个通信通道,并连接到服务器所在主机的特定端口:
2)向服务器发送服务请求报文,等待并接收应答,继续提出请求;
3)请求结束后关闭通信通道并终止。
从以上C/S操作过程可知,客户与服务器进程的作用是非对称的,因此双方各自的编码不同;服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
由于本试题没有给出完整的Java服务程序代码,因此需要考生对Socket通信的基本过程理解,要求熟悉Socket传送数据的基本方法。程序给出了对Response和Request对象的定义和两个对象的方法定义,但是方法的具体功能一定要注意看语句后面的注释,(1)~(8)空缺处所填写的内容也来自于后面注释的信息。另外,由于Java程序是区分大小写的,因此一定要弄清楚什么地方指的是类,什么地方是类的实例。因为类和类的实例的拼写通常就只有大小写的区别。
第(1)空缺处要求创建侦听端口号为PORT的ServerSocket类型的对象,那么只要调用ServerSocket类的构造函数就可以了,具体的参数可以参照表6-16中ServerSocket类构造函数的格式调用。因此(1)空缺处所填写的内容是“ServerSocket(PORT)”或“ServerSocket(PORT,1,InetAddress.getByName(“127.0.0.1”))”。
由(2)空缺处的注释内容可知,该空缺处所填写内容的作用是要创建来自客户端的连接套接字。从 ServerSocket类的成员函数表(见表6-16)中可知,其函数accept()的作用是返回建立连接的Socket类型的对象。因此(2)空缺处所填写的内容是“serverSocket.accept()”或其等价的带参数形式。
第(3)空缺处是要创建输入流,从Socket类的主要成员函数表(见表6-17)中可知,函数getInputStream()是返回当前对象关联的输入流。因此(3)空缺处应填入“getInputStream()”或其等价的带参数形式。
第(4)空缺处是要创建输出流,从表6-17中Socket类的getOutputStream()函数功能说明可知,getOutputStream()是返回当前对象关联的输出流。因此(4)空缺处应填入“getOutputStream()”或其等价的带参数形式。
第(5)空缺处是解析客户端HTIP请求,在Request.java程序中关于Request对象成员函数说明,语句“public void parse(){...parseUrl();...)”声明了,函数parse()的作用就是解析客户端HTTP请求消息。因此(5)空缺处所填写的内容是“parse()”或其等价的带参数形式。
第(6)空缺处是解析客户端发送所请求的静态资源,在Response.java程序中关于Response对象成员函数说明中,语句"public void sendStaticResource()throwsIOException{...}“声明了,函数sendStaticResource()的作用就是向客户端发送所请求的静态资源。因此(6)空缺处应填入“sendStaticResource()”或其等价的带参数形式。
第(7)空缺处是关闭套接字,可以直接调用Socket类的close()方法,即该空缺处所填写的内容是“socket.close()”。
第(8)空缺处要注意到其作用是要获取HTFP中的URL信息,从而决定是否关闭服务器。在Request.java程序关于Request对象成员函数的定义中,有3个与URL相关的成员函数。但是只有parseUrl(String requestString)可以解析出其中的URL,并且该函数要求有一个输入的参数,因此必须找出如何获得这个参数的方法。在题目所给出的信息中,只有Request对象的另一个成员函数getUrl()可以返回String类型的URL。因此(8)空缺处所填写的内容是“getUrl()”。

更多 “北京影谱科技股份有限公司7月招聘面试题93道202074” 相关考题
考题 在UNIX系统中,用于给一个套接字赋名的函数是()A、bind()B、socket()C、connect()D、send()正确答案:B

考题 以下哪些接口方式属于Intel公司产品的接口方式?()A、Socket 370B、Socket 754C、socket AD、socket 478正确答案:A,D

考题 查看bep1主机与前台n7server的连接情况,需要inaccess接入到manager当中,执行命令()A、socket –smpB、socket –smscC、socket –sspD、socket –sms正确答案:C

考题 RDRAM曾经搭配的P4CPU是().A、socket478B、LGA775C、socket423D、socket7正确答案:C

考题 SSL协议工作在 ( ) 。A. Socket层 B. 网络层 C. HTTP层 D. 数据链路层 答案:A解析:SSL协议(Secure Socket Layer,安全套接层)是由网景(Netscape)公司推出的一种安全通信协议,它能够对信用卡和个人信息提供较强的保护。SSL是对计算机之间整个会话进行加密的协议。在SSL中,采用了公开密钥和私有密钥两种加密方法。它工作于Socket层。

考题 EISU通用DO接口对应的通道为()A、301~304B、302~305C、303~306D、304~307正确答案:A

考题 RDRAM曾经搭配的P4CPU是().A.socket478B.LGA775C.socket423D.socket7参考答案:C

考题 EISU两路摄像头复位DO接口对应的通道为()A、301、302B、303、304C、305、306D、306、307正确答案:D

考题 ()类型的插槽可以使用Intel Core i7的处理器。A、Socket AB、Socket AM2+C、Socket BD、Socket 370正确答案:C

考题 以下哪个状态码代表的是永久重定向?()A、301B、302C、303D、304正确答案:A