1、TCP/IP协议的理解。
TCP/IP定义了电子设备(如计算机)连入因特网的标准,以及数据如何在它们之间传输的标准。它既是互联网中的基本通信语言或协议,也是局域网的通信协议。
TCP/IP是一组包括TCP协议、IP协议、UDP协议、ICMP协议和其他一些协议的协议组。需要进行网络通信的计算需要提供符合这些协议标准的程序以后,才能进行网络通信。
2、TCP协议的通信特点是什么?
TCP协议主要拥有如下的通信特点:
(1)面向连接的传输;
(2)端到端的通信;
(3)可靠性,确保传输数据的正确性,不出现丢失或乱序;
(4)采用字节流方式,即以字节为单位传输字节序列。
3、Java的TCP编程模型是什么?
编写Java的TCP网络应用程序需要分为服务器端和客户端两个部分,大致有以下步骤。
服务器端:
(1)创建一个服务器端的Socket,指定一个端口号;
(2)开始监听来自客户端的请求要求;
(3)获得输入流或输出流;
(4)调用输入流/输出流的read()或write()方法,进行数据的传输;
(5)释放资源,关闭输出流/输入流、Socket和ServerSocket对象;
客户端:
(1)创建Socket对象,建立与服务器端的连接;
(2)获得输出流或输入流;
(3)调用输入流/输出流的read()或write()方法,进行数据的传输;
(4)释放资源,关闭输出流/输入流、Socket对象。
4、UDP协议的通信特点是什么?
UDP协议主要拥有如下的通信特点:
(1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上;
(2)不需要维护连接状态,包括收发状态等;
(3)字节开销很小;
(4)吞吐量主要受应用软件生成数据的速率、传输带宽、源端和终端主机性能等因素的限制。
5、Java的UDP编程模型是什么?
编写Java的UDP网络应用程序需要分为接收端和发送端两个部分,它们大致的步骤相同,主要包括以下几个方面:
(1)创建数据Socket,指定一个端口号;
(2)对于接收消息的一端来说,提供一个byte数组进行数据的存储;而对于发送消息一端,除此以外还需要提供对端的IP地址和端口号;
(3)调用DatagramPacket的receive()或send()方法进行数据的接收或发送;
(4)调用DatagramPacket的getData()方法得到byte数组的数据;
(5)释放资源。
6、如何创建TCP通信的服务器端的多线程模型?
使用多线程模型来编程TCP程序的服务器端,主要有以下步骤:
(1)创建ServerSocket对象,指定监听的端口;
(2)把accept()方法作为循环条件,循环监听客户端请求;
(3)创建线程类,定义一个Socket类型的成员变量,并定义一个可以为它赋值的构造方法;
(4)在run()方法中使用socket变量进行任意的通信操作;
(5)在主进程的循环体内开启一个线程,并传入accept()方法的返回值。
7、用UDP通信模型创建一个即时聊天软件。
主要思路包括:为接收用户输入和打印聊天记录两个界面创建两个不同的线程,它们分别使用DatagramPacket通信。创建一个发送消息的线程类(SendThread)和一个接收消息的线程类(ReceiveThread),分别的作用是循环监听用户的输入并把用户输入的数据通过调用DatagramSocket的send()方法发出和循环的调用DatagramSocket的receive()方法,接收另外一端来的数据。
8、有两间房,一间房中有3盏灯,另一间房有控制这3盏灯的开关(这两间房是分割开的,毫无联系)。现在要你分别进这两间房一次,然后判断出这三盏灯分别是由哪个开关控制的。
首先进入开关房间,先开开关A,过段时间,关A,开B,去另一个房间,亮着的灯是B控制的,不亮的灯中热的是A控制,冷的是C控制。
9、有3个容器,分别是3、7、10体积,容器没有刻度。10体积的容器中装满某种液体,3、7容器是空的。没有别的工具,现在请把这种液体平分成相对精确的两份。
(1)3:0:7
(2)0:3:7
(3)3:3:4
(4)0:6:4
(5)3:6:1
(6)2:7:1
(7)2:0:8
(8)0:2:8
(9)3:2:5
(10)0:5:5
10、有12个外表完全一样的球,其中有一个球重量不一样(这里假设更轻),给你一个,诶呦刻度的天平,你只能用3次,把球找出来。
(1)分3堆,4:4:4.
(2)把上步确定好的四个球进行2:2分堆过秤。
(3)把最后两个球过秤。
11、狡猾的骗子到商店用100元的钞票买了9元的东西,售货员找了他91元钱,这时他又称自己已有零钱,给了9元而要回了自己原来的100元。那么,他骗了商店多少钱?
82元+商品本身的价值。
12、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
(1)点燃第一根香的两头,和点燃第二根香的一头;
(2)等到第一根香燃尽以后,再把第二根香的另一头点燃;
(3)从第一根香燃尽开始算起,直到第二根香燃尽,时间就是15分钟。