《Android面试宝典》学习笔记(第七章:网络和加密)
创建Socket对象至少需要指定哪些信息?
IP和端口号:
Socket socket = new Socket("www.microsoft.com",80);
socket连接服务器及与服务器端交互的代码:
http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html
哪些情况下socket会被关闭?
1:Socket.close方法;
2:InputStream和OutputStream有一个关闭;
3:程序退出时网络连接自动关闭;
4:Socket对象被设为null或被新的Socket对象释放后。
如何使用Socket.connect方法连接服务器?
Socket socket = new Socket(); socket.connect(new InetSocketAddress("192.168.18.100", 8080));
如何设置连接超时?
socket.connect(new InetSocketAddress("192.168.18.100", 8080), 2000);
Socket类的getter方法有哪些?
socket.getInetAddress().getHostName();
socket.getInetAddress().getPort();
socket.getInetAddress().getRemoteSocketAddress();
socket.getInetAddress().getLocalAddress();
socket.getInetAddress().getLocalPort();
socket.getInetAddress().getLocalSocketAddress();
socket.getInetAddress().getRemoteSocketAddress();
如何保证在Socket.close方法后将所有的数据发给服务器?
socket.setSoLinger(true, 30);
socket选项:
http://www.open-open.com/lib/view/open1412994697952.html
Socket异常处理?
http://www.educity.cn/java/505626.html
如何创建服务端socket?
ServerSocket serversocket = new ServerSocket(1234);
如何设置请求队列长度?
ServerSocket serversocket = new ServerSocket(1234,100);
同步/异步/阻塞和非阻塞I/O有什么区别?
同步:在发出一个功能调用时,在没有得到结果之前,该调用就不返回。
异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
阻塞:调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
非阻塞:指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
如何使用非阻塞I/O发送HTTP请求并返回信息?
http://jasonshieh.iteye.com/blog/927376
非阻塞I/O提供的缓冲区类有哪些?
ByteBuffer、ShortBuffer、IntBuffer、CharBuffer、FloatBuffer、DoubleBuffer、LongBuffer。
如何从缓冲区读取数据?
ByteBuffer.put(byte b);
ByteBuffer(int index, byte b);
ByteBuffer.put(byte[] src, int offset, int length);
byteBuffer.array获取缓冲区中的数据
如何标注缓冲区中的特殊位置?
使用ByteBuffer.mark方法。
如何使用WebView控件向前向后浏览历史页面?
webView.goForward();
webView.goBack();
如何在WebView控件中显示HTML页面?
webview.loadDataWithBaseURL();
Javascript是如何调用Java方法的?
通过异步完成,要使用Handler处理。
Android支持哪些访问HTTP的方式?
DefaultHttpClient和HttpURLConnection,都封装了Http请求。
如何通过HttpPost对象向服务端发送POST请求,并获取字符串返回值的Java代码?
http://jasonshieh.iteye.com/blog/927376
如何使用HTTP上传文件?
http://blog.csdn.net/wangpeng047/article/details/38303865
什么是WebService?Android是否可以调用WebService?
WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。
可以,但Android SDK本身并未提供调用WebService的API,需要使用第三方API,如KSOAP2。
什么是HTTPS?
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
如何访问HTTPS资源?
http://blog.sina.com.cn/s/blog_6e4d9a9b0100wjt1.html
什么是对称加密?什么是非对称加密?
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
什么是不可逆加密算法?Android支持哪几种不可逆加密算法?
不可逆加密算法指数据经过加密后,不能还原成原来的数据。Android支持的有MD5、SHA、HMAC等。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。