sokaoti.com
佳都新太科技股份有限公司8月招聘面试题78道202089

在J2EE中,当使用以某主机地址为参数的构造器来创建新的Socket实例时()。

A.客户端试图通过Internet建立与该主机的链接

B.客户端启动运行于主机上的服务器程序

C.没有特殊事情发生,直到调用Socket的accept()方法

D.调用Socket的accept()方法


参考答案:A


在J2EE中,当使用以某主机地址为参数的构造器来创建新的Socket实例时,()。

A.客户端试图通过Internet建立与该主机的连接

B.客户端启动运行于主机上的服务器程序

C.没有特殊事情发生,直到调用Socket的accept()方法

D.调用Socket的accept()方法


参考答案:A


服务器软件运行在企业服务器上,其特点是多线程、多应用程序同时运行,为众多的客户端提供服务。()

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


参考答案:正确


阅读以下程序说明和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()”。


对于反弹端口型的木马,()主动打开端口,并处于监听状态。①木马的客户端②木马的服务器端③第三服务器

A.③

B.②

C.①

D.①或③


参考答案:D


佳都新太科技股份有限公司8月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:如何在Python中实现多线程?可用的回答 :Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快问题 Q2:简述 三次握手、四次挥手的流程?可用的回答 : 三次握手: 初始状态:客户端A和服务器B均处于CLOSED状态,然后服务器B创建socket,调用监听接口使得服务器处于LISTEN状态,等待客户端连接。(后续内容用A,B简称代替) 1、A首先向B发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的), 消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1, 然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后, B进 入SYN_RCVD状态,与连接消息一样,这条消息也不能携带数据,同时消耗一个序号。 3、A收到B的确认消息后,需要给B回复确认数据,这时TCP头部中的ACK标识位值为1, 确认序号是ack=y+1,自己的序号在连接请求的序号上加1,也就是seq=x+1, 此时A进入ESTABLISHED状态,当B收到A的确认回复后,B也进入ESTABLISHED状态, 至此TCP成功建立连接,A和B之间就可以通过这个连接互相发送数据了。 四次挥手: 初始状态:客户端A和服务器B之间已经建立了TCP连接,并且数据发送完成,打算断开连接, 此时客户端A和服务器B是等价的,双方都可以发送断开请求,下面以客户端A主动发起断开请求为例。(后续内 容用A,B简称代替) 1、A首先向B发送断开连接消息,这时TCP头部中的FIN标识位值为1,序号是seq=m,m为A前面正常发送数据最后一个字节序号加1得到的, 消息发送后A进入FNI_WAIT_1状态,FIN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的断开连接请求需要发出确认消息,这时TCP头部中的ACK标识位值为1,确认号为 ack=m+1, 而自己的序号为seq=n,n为B前面正常发送数据最后一个字节序号加1得到的, 然后B进入 CLOSE_WAIT状态,此时就关闭了A到B的连接, A无法再给B发数据,但是B仍然可以给A发数据,同时B端通知上方应用层,处理完成后被动关闭连接。 然后A收到B的确认信息后,就进入了 FIN_WAIT_2状态。 3、B端应用层处理完数据后,通知关闭连接, B向A发送关闭连接的消息,这时TCP头部中的FIN和ACK标识位值均为1, 确认号ack=m+1,自己的序号为seq=k,消息发送后B进入LACK_ACK状态。 4、A收到B的断开连接的消息后,需要发送确认消息, 这是这时TCP头部中的ACK标识位值为1,确认号ack=k+1,序号为m+1(因为A向B发送断开连接的消息时消耗了一个消息号), 然后A进入TIME_WAIT 状态,若等待时间经过2MSL后,没有收到B的重传请求, 则表明B收到了自己的确认,A进入CLOSED状态, B收到A的确认消息后则直接进入CLOSED状态。至此TCP成功断开连接。 问题 Q3:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q4:ngnix的正向代理与反向代理?可用的回答 : 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 客户端必须要进行一些特别的设置才能使用正向代理。 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。 客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求, 并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 问题 Q5:生成器?可用的回答 :生成器的本质就是一个逐个返回元素的函数,即“本质函数”最大的好处在于它是“延迟加载”,即对于处理长序列问题,更加的节省存储空间。即生成器每次在内存中只存储一个值问题 Q6:什么是猴子补丁?可用的回答 :在运行时动态修改类和模块问题 Q7:跨域请求问题django怎么解决的(原理)?可用的回答 : 1. 启用中间件 2. post请求 3

TCP协议的“三次握手”中,第一次握手指的是什么( )。

A、客户端再次向服务器端发送确认信息,确认连接

B、服务器端向客户端回送一个响应,通知客户端收到了连接请求

C、客户端向服务器端发出连接请求,等待服务器确认

D、以上答案全部错误


参考答案:C


以下关于OrableHOME_NAMETNSLisnter说法正确的是()

A.此服务是ORACLE服务器的监听程序

B.客户端必须先连接驻留在数据库服务器上的监听进程

C.监听器接收从客户端发出的请求,然后将请求传递给数据库服务器

D.监听器未启动,客户端将无法连接到数据库服务器


正确答案:ABCD


A、将CPU时间划分成许多小片,轮流为多个程序服务,这些小片称为“时间片”

B、由于CPU是计算机系统中最宝贵的硬件资源,为了提高CPU的利用率,一般采用多任务处理

C、正在CPU中运行的程序称为前台任务,处于等待状态的任务称为后台任务

D、在单CPU环境下,多个程序在计算机中同时运行时,意味着它们宏观上同时运行,微观上由CPU轮流执行


正确答案:C


启动M2000V2客户端应用程序,登录失败,提示“连接的服务器不存在或者所需的服务没有运行”,有哪些可能的原因?()

  • A、登录的服务器的IP地址不正确
  • B、客户端与服务器之间的网络连接异常
  • C、客户端上与服务器之间存在防火墙,屏蔽了某些端口
  • D、服务器的运行状态错误,全部或部分服务没有运行
  • E、服务器配置了2个或2个以上IP地址

正确答案:A,B,C,D,E


TCP协议通过三次握手在客户端和服务器间建立连接。


正确答案:正确

更多 “佳都新太科技股份有限公司8月招聘面试题78道202089” 相关考题
考题 通过在传输层使用UDP与服务器建立通信时,客户端将执行哪个操作?()A、客户端将设置会话的窗口大小。B、客户端将发送ISN到服务器以开始三次握手。C、客户端将随机选择源端口号。D、客户端将发送同步数据段以开始会话。正确答案:C

考题 Web浏览器通过()与服务器建立起TCP/IP连接。A、三次握手B、四次握手C、三次挥手D、四次挥手正确答案:A

考题 在J2EE中,当使用以某主机地址为参数的构造器来创建新的Socket实例时()。 A、客户端试图通过Internet建立与该主机的链接B、客户端启动运行于主机上的服务器程序C、没有特殊事情发生,直到调用Socket的accept()方法D、调用Socket的accept()方法正确答案:A

考题 TCP协议的“三次握手”中,第一-次握手指的是什么?()A、客户端再次向服务器端发送确认信息,确认连接B、服务器端向客户端回送一.个响应,通知客户端收到了连接请求C、客户端向服务器端发出连接请求,等待服务器确认D、以上答案全部错误正确答案:C

考题 单选题通过在传输层使用UDP与服务器建立通信时,客户端将执行哪个操作?()A 客户端将设置会话的窗口大小。B 客户端将发送ISN到服务器以开始三次握手。C 客户端将随机选择源端口号。D 客户端将发送同步数据段以开始会话。正确答案:A解析:暂无解析

考题 在使用CAsyncSocket编写基于TCP的应用程序时,如果服务器程序希望监听客户端的连接请求,可以使用的CAsyncSocket成员函数为()正确答案:Listen

考题 在客户机/服务器建构中的“相互验证”指的是()。A、服务器端验证客户端,客户端验证服务器B、服务器和服务器之间的交叉验证C、客户端和服务器端建立连接时的三次握手D、客户端一旦被服务器端验证,则客户端可以访问系统内其他的资源正确答案:A

考题 建立Sochet类的服务器端需要哪些步骤?()A、服务器端对任意指定的IP地址和端口号进行监听B、监听端口,等待客户端的连接C、建立一个服务器端对象,提供监听的端口号D、当获得其它客户端的连接后,停止监听,创建一个Socket类,用于通讯E、服务器端在此端口继续进行监听正确答案:B,E

考题 填空题因为应用服务器、传真服务器等的客户端是通过()发起调用的,所以需要使用Windows NT的()程序正确配置应用服务器、传真服务器等。正确答案:DCOM,DCOMCNFG.EXE解析:暂无解析

考题 多选题动态网页的生成基本上可分为()形式?A服务器端执行程序形式B客户端执行程序形式C服务器端执行嵌入代码形式D客户端执行嵌入代码形式正确答案:C,A解析:暂无解析