最后更新:2022-07-13 09:33:29 手机定位技术交流文章
1.如何准确地在网络上定位一个或多个主机;在主机上定位特定应用程序。
2.找到主机后如何可靠高效地传输数据
1.相关问题1:IP和港口号码
2.相应的问题2:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链层)
1.IP:互联网上计算机(通信实体)的唯一标识符
2.Java中使用的InetAddress类代表IP
3.域名:ww.Baidu.com,ww.jd.com
4.本地回路地址:127.0.0.1,对应着:localhost
1.分类一:IPV4和IPV6
IPV4:由四个字符组成,四个字符为 0-255。
IPV6:16位元(128位元)编写成8个未签名整数,每个都由4位元16位元表示。
2.分类二:公共网络地址(用于互联网上使用)和私人地址(用于本地网络使用)
192.168开头的就是私有地址,范围即为192.168.0.0-192.168.255.255
InetAddress类的对象代表一个特定的IP地址
1.在给定的主机名称下确定主机的IP地址。如果参数无效,则得到主机的IP地址
static InetAddress getByName(String host)
2、获取本机的地址
static InetAddress getLocalHost()
1.获取此IP地址的主机名称,即域名
String getHostName()
获取IP地址和返回IP地址字符串(以文本表示形式)
String getHostAddress()
1.端口数:在计算机上运行的进程。
2.要求:不同的进程有不同的端口号码
3.范围:设置为16位数的整数:0-65535
4.接口号和IP地址的组合产生网络接口:接口
1.定义端口:0-1023.预定义服务通信职业(例如HTTP职业80、FTP职业21、Telnet职业23)
注册端口:1024-49151。 分配给用户进程或应用程序(例如Tomcat使用8080端口,MySQL使用3306端口,Oracle使用1521端口等)。
3.动态/私有端口:49152~65535
| TCP/IP参考模型 | TCP/IP参考模型层层兼容协议 |
|---|---|
| 应用层 | HTTP、FTP、Telent、DNS等。 |
| 传输层 | TCP、UDP |
| 网络层 | IP、ICMP、ARP |
| 物理+数据链路层 | LInk |
| TCP协议 | UDP协议 |
|---|---|
| 使用TCP协议前,须先建立TCP链接,形成传输数据通道 | 将数据、数据源和目标包装成数据包,不需要建立链接 |
| 传送前,使用“三手”方法,传送后,使用“四手”方法,点到点交流,是可靠的 | 发送不可靠,对方是否准备好,接收者是否接受或不确认 |
| 在连接过程中可进行大数据量的传输 | 每个数据的大小限制为64k |
| 传输完毕,需是释放已建立的连接,效率低 | 发送数据结束时不需要释放资源,低成本,快速 |
| TCP协议通信的两个应用程序过程:客户端和服务端 | 可以广播发送 |
| 生活实例:打电话 | 生活实例:发送短信,发送电讯 |
例1:客户端向服务端发送信息,服务端将数据放在控制面板上
1.创建一个接口对象以指定服务端口的IP地址和端口
public Socket(InetAddress address, int port)
2.打开与插座连接的输出流
public OutputStream getOutputStream()
执行写操作的接口
public void write(byte b[])
4.关闭插座
public synchronized void close()
1.在服务器端创建服务器插座,指定自己的端口号码
public ServerSocket(int port)
调用 accept() 意味着接受客户端的接口
public Socket accept()
3、获取输入流
public InputStream getInputStream()
在输入流中读取数据
public int read(byte b[])
5、关闭ServerSocket和Socket对象
public void close()
public synchronized void close()
客户端将文件发送到服务器,服务器将文件保存到本地.
例3:将客户端的文件发送到服务端,服务端将它保存在本地。 然后向客户端返回“欢迎,照片已经发送,请检查”并关闭相应的连接
关闭客户端的输出流。 给定的流中添加一个末端标记 -1 的等价
public void shutdownOutput()
发送者向接收者发送“你好,我是UDP的发送者”
1、构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。length参数必须小于等于 buf.length
public DatagramPacket(byte buf[], int offset, int length,InetAddress address, int port)
从插座发送数据包
public void send(DatagramPacket p)
1.创建数据报告索克,并将其绑定到本地主机指定的端口上。
public DatagramSocket(int port)
2、构造 DatagramPacket,用来接收长度为 length 的数据包
public DatagramPacket(byte buf[], int offset, int length)
从插座接收数据包
public synchronized void receive(DatagramPacket p)
4、返回数据缓冲区
public synchronized byte[] getData()
发送或接收返回数据的长度
public synchronized int getLength()
1.URL(Uniform Resource Locator):统一资源定位符,它表示Internet上某一资源的地址
2.URL的基本结构由五个部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表
例如:
http://192.168.1.100:8080/helloworld/index.jsp#a?username=shkstart&password=123
1.获取URL的协议名称
public String getProtocol()
获取URL的主机名称
public String getHost()
获取URL的端口号码
public String getPort()
获取文件路径到URL
public String getPath()
获取URL的文件名
public String getFile()
获取URL的查询名称
public String getQuery()
阅读和下载相应的url资源
1,返回一个URLConnection对象,该对象代表由URL所指的远程对象的连接
public URLConnection openConnection()
2、获取输入流
public InputStream getInputStream()
本文由 在线网速测试 整理编辑,转载请注明出处。