13.1.1
TCP/IP协议

讲的很抽象,没具体看懂什么是TCP协议,什么是IP协议。IP协议保证消息从一个主机传送到另一个主机,消息在传送的过程中被分割成一个个小包,TCP协议会让两台相互连接的计算机建立一个连接:用于发送和接收数据的虚拟链路。

TCP协议和IP协议是两个协议,但是通常一起使用,两者功能上互相补充,统称TCP/IP协议。

13.1.2
使用ServerSocket创建TCP服务器端

Java中ServerSocket用于接收来自客户端Socket的连接请求。

accept()方法用于接收一个客户端Socket的连接请求,返回值是与客户端Socket对应的服务器端的Socket。该方法是阻塞方法。

ServerSocket提供了几个构造器:

ServerSocket(int
port):port表示一个端口(0~65535),通常推荐1024以上的端口。

ServerSocket(int port,int
backlog)、ServerSocket(int port,int backlog,InetAddress
localAddr)表示目前没有用过。

服务器端使用完毕后应该用close()方法关闭,因为涉及到有关流的操作。

13.1.3
使用Socket进行通信

客户端可以使用Socket向服务器端发送链接请求,构造方法:

Socket(InetAddress/String
remoteAddress,int port):比较常用

Socket(InetAddress/String
remoteAddress,int port,InetAddress localAddr,int
localPort):适用于主机有多个IP地址的情况

Socket通过得到输入输出流进行通信:

getInputStream():返回InputStream

getOutputStream():返回OutputStream

Android访问互联网,需要添加权限:


对Socket的setSoTimeout(int
timeout)方法的说明:

1、该方法表示Socket调用InputStream的read()方法的阻塞时间,如果超过这个时间将抛出异常,但是此时Socket是有效的(此时的Socket仍然可以进行读写数据流的操作);

2、设置setSoTimeout()方法必须在Socket进入阻塞方法之前,否则无效。

setSoTimeout()方法表示Socket进行读操作的阻塞时间,如果要设置Socket的连接服务器的超时时间:

Socket s=new
Socket();//创建一个无连接的Socket

s.connect(new
SocketAddress(new
SocketAddress(host,port),timeout);//让该Socket连接到远程服务器,如果经过timeout还没有连接到,则认为连接超时

13.2使用URL访问网络资源

URL表示指向互联网资源的一个指针,通常的格式是:

protocol(协议)://host(主机):port(端口)/resourceName(资源)

主要方法:

URLConnection
openConnection():返回一个URLConnection对象,表示到URL所引用远程对象的连接。

InputStream
openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream。

13.2.2使用URLConnection提交请求

应用程序可以使用URLConnection向该URL发送请求,读取URL引用的资源。

和URL建立连接,发送请求,并读取此URL引用的资源的步骤:

1、调用URL的openConnection(),返回URLConnection对象;

2、设置URLConnection对象的参数和请求属性;

3、如果是发送GET请求,使用connect方法即可,如果是POST请求,需要先获取输出流来发送请求;

4、远程资源可用,应用程序可以访问该资源的头字段,或者输入流来读取该资源。

13.3.2使用ApacheHttpClient

Apache提供的开源项目HttpClient不仅可以处理HttpURLConnection的功能,还可以维护和服务器之间的Session、Cookie。

即HttpClient专注于发送请求,接收响应以及管理HTTP连接。

13.4使用WebView视图显示网页

WebView本身可以看做是一个浏览器实现,它的内核是基于WebKit引擎。

13.4.1使用WebView浏览网页

WebView提供了大量的方法执行浏览器操作,比如前进、后退、加载网页等。

13.4.2使用WebView加载HTML代码

WebView提供了loadDataWithBaseURL(String
baseUrl,String data,String mimeType,String encoding,String
historyUrl)方法加载并显示HTML代码,该方法的参数说明是:

data:指定需要加载的HTML代码

mimeType:指定HTML代码的MIME类型,对于HTML代码指定为text/html

encoding:指定HTML代码编写所用的字符集,比如指定为GBK

13.4.3使用WebView中的JavaScript调用Android方法

在WebView中通过JavaScript调用Android方法的步骤:

1、调用WebView关联的WebSettings的setJavaScriptEnabled(true)启用JavaScript调用功能。

2、调用WebView的addJavaScriptInterface(Object
object,String name)方法将object对象暴露给JavaScript。

3、在JavaScript脚本中通过刚才暴露的name对象调用Android方法。

13.5使用Web
Service进行网络编程

为了让Android应用和服务器之间进行交互的技术:

1、Java的RMI技术:要求服务器端使用Java实现;

2、CORBA技术:实现过于复杂;

3、Web
Service;

13.5.1 Web
Service平台概述

Web
Service平台主要涉及的技术有SOAP(简单对象访问协议)、WSDL(Web
Service描述语言)、UDDI(统一描述、发现和整合协议)。

13.5.2
使用Android应用调用Web Service

Android项目可以通过ksoap2-android项目来调用Web
Service操作。

最新文章

  1. 一个MVC架构的线程安全的银行转账案例(事务控制)
  2. lambda的Func<>函数
  3. UVa120 - Stacks of Flapjacks
  4. MATLAB remove outliers.
  5. $1200元 设计数据挖掘模型及对应RESTful Web Service
  6. inno setup 多语言安装
  7. handsontable常规配置的中文API
  8. 【多线程】--生产者消费者模式--synchronized版本
  9. 求斐波那契数列的第n项
  10. wx
  11. 关于表格动态添加行并处理相关表单元素的一些修改----优化for重用(2)
  12. 内核printk打印等级
  13. sync命令
  14. 华为OJ之放砝码
  15. dsu on tree 树上启发式合并 学习笔记
  16. Python——正则表达式初步应用(一)
  17. C# 8中的可空引用类型
  18. python 爬虫与数据可视化--python基础知识
  19. Java 使用 happen-before 规则实现共享变量的同步操作
  20. ASP.NET Core配置环境变量和启动设置

热门文章

  1. MongoDB快速入门教程 (4.1)
  2. dart快速入门教程 (3)
  3. 【vue】---- ElementUI 实现上传Excel
  4. 分布式配置中心(Native - Config)
  5. Python-使用tkinter canvas绘制的电子时钟
  6. 飞越面试官(一)--Java基础
  7. Dot Net Core中间件内部运行机制
  8. 【python接口自动化】01-requests请求
  9. CSS(三) - 定位模型 - float的几要素
  10. order by 注入姿势