最后更新:2022-05-10 02:01:10 手机定位技术交流文章
目录
一、网络通信协议
一.1. 港口号码和IPIP地址
1.2、 InetAddress
二. 《关于联合民主党-贸易协定的协定》
2.1、UDP协议
2.2 TCP协议
三、 UDP通信
3.1 DatagramPacket
3.2 DatagramSocket
3.03 UDP 网络应用程序
四、TCP通信
4.1 ServerSocket
4.2 Socket ServerSocket
四.3. 简单的TCP网络应用程序
文件上传案例
4. 5 多线版本的文件上传状态

上文将TCP/IP协议的四个层次描述为应用、传输、网络和链接层,每个层次负责各种通信职能。

上图显示,网络上的计算机可以通过IP地址进入另一台计算机,目标计算机上也可以通过港口号码进入应用程序。
static
InetAddress
|
getByName
(
String
host)
如果提供了主机名, 此函数返回主机的 IP 地址 。 |
String |
getHostAddress()
返回 IP 地址字符串( 文本形式) 。 |
String |
getHostName()
获取与此 IP 地址相关的主机名 。 |
static
InetAddress
|
getLocalHost()
返回本地主机。 |
上图中,INETAddress经常使用四种方法。其中,前两种方法用于收集这一类目标群体的样本。第一种方法返回 InetAddress 对象,该对象代表所提供的主机。第二种方法用于获取代表所在地的 InetAddress 对象。InternetAddress 对象提供对所提供主机名的访问权限。IP地址等。
在TCP/IP结构中,在传输层方面,有两项重要的高级别协议。TCP和UDP是两项议定书。用户数据表协议作为UDP缩写。用户数据报告协议就是它所谓的。TCP代表《传输控制议定书》。称为传输控制协议。


由于TCP协议以连接为导向,它确保了数据传输的安全并被广泛使用,例如,在下载文件时,如果数据接收是部分的,它将导致无法获得的文件数据丢失,因此必须使用TCP协议。
联合民主党是一个单独的安排。因此,在沟通时,没有要求在发送者和接收端之间建立联系。联合民主党通讯议定书类似于航运公司在两个码头之间运输货物。货物在港口交付和收到后,必须装上集装箱。民主联盟的通信也是如此。传输和接收的数据也必须捆绑在“容器”中。因此,JDK包括一个数据法包类。等同的容器就是这种类型的一个例子。加密通过UDP对话提供或收到的数据。
要生成数据表包对象,请先构建数据表包对象。首先,我们必须了解它是如何建立的。在发送和接收端, 在建造数据组包装物体时,采用的建筑方法各有不同。接收端的建设方法只要求一个字节阵列来保存收到的数据。发送方的解决方案不仅仅是接收包含给定数据的字节阵列。您还必须包含发件人的 IP 地址和端口号 。
DatagramPacket(byte[] buf, int length)
构造 DatagramPacket,用来接收长度为length的数据包。 |
要构建数据仪包件天体, 请使用此构造技术 。指定了字节数组的大小和附加数据的数据。没有提供 IP 地址或端口号 。很明显,这些物品只能在接收端使用。不能用于发送端。由于发送者必须指明数据目的地(ip地址和港号),必须确定数据目的地。此外,并不要求接受者知道数据的实际来源。只应发送数据。
DatagramPacket
(byte[] buf, int length,
InetAddress
address, int port)
创建用于长度的数据包 。 length。该物品已交付给给定的东道方和港口号。 |
要构建数据仪包件天体, 请使用此构造技术 。它不仅指定字节阵列和要封装的数据数量,而且还指定了还具体说明了数据集的目标IP地址(addr)和端口号(port)。此项通常适用于发件人。既然您在传输数据时必须提及收件人的 IP 地址和端口号,好像运送物品的集装箱 一定有收货人的地址
InetAddress |
getAddress()
计算机的IP地址将被传送或从机器接收,该地址将被退回。 |
byte[] |
getData()
返回数据缓冲区。 |
int |
getLength()
将要交付或收到的数据的长度被退回。 |
int |
getOffset()
要交付或收到的数据的偏差被退回。 |
int |
getPort()
返回将发送到主机或从主机接收到的远程主机的端口号。 |
Datagram Packet 的功能是充当“ 容器 ” 。数据信封可以装入发件人或接收端。然而,仅仅在“集装箱”内运输产品是不够的。还需要有码头。数据表包数据包是程序期间所需的唯一通信。为此,JDK包括一个数据组套件类。DatagramSocket 类功能与对接功能相似。您可以使用这类示例对象传输和接收数据组包数据包包。下图说明数据传输过程。

|
DatagramSocket()
数据包是在当地主机的任何无障碍港口建造和装订的。 |
当系统分配一个未被其他网络应用程序使用的端口号码时,将使用建筑技术在发件人端上建造一个数据表套件,在数据表套件天体建造时没有提供端口号码。
|
DatagramSocket(int port)
创建数据套件并将其连接到本地主机的端口 。 |
此方法可用于在接收端也构建数据组套件对象。为发件人建造数据组套件也是可行的。在为接收器建造数据组套件天体时,必须指定一个端口号 。因此,你可以倾听所选港口的声音。
void |
receive
(
DatagramPacket
p)
这种组合产生数据包。 |
void |
send
(
DatagramPacket
p)
此线索的数据集已发送 。 |
下图是UDP发射机和接收机的交互式表示式。
为了建立UDP通信,必须构建发送程序和接收程序,显然,只有接收程序才能先运行,以避免由于发送者提供的数据无法接受而造成数据损失。 因此,接收终端程序必须先完成。

服务器终端程序必须首先在构建 TCP 程序时构建。 JDK 的 java 。 网络包包括一个服务器套件类, 示例对象可以在其中完成服务器段程序 。
ServerSocket(int port)
创建连接到某个端口的服务器集。 |
使用这种建筑技术(参数端口是端口号)将服务器套件的物体绑在一定的端口号上。
Socket |
accept()
这组连接可以被听到和接收 |
void |
bind
(
SocketAddress
endpoint)
将 ServerSocket绑在特定IP地址和端口号上。 |
void |
close()
关闭此套接字。 |
InetAddress |
getInetAddress()
返回服务器套接字的本地地址 。 |
ServerSocket负责监听计算机的端口号。在服务器套件对象创建后,它必须保持引用对象的接受()功能。接受客户询问。当使用被接受() 函数时,服务器端软件将被禁用 。它在客户提出连接请求之前不会运作。接受() 函数产生一个可用于与客户端通信的 Scoket 对象 。这一程序将无限期地执行。
客户可以完成服务端程序, 但服务器端程序尚不能完成通信, 从而需要使用客户对客户程序,
|
Socket
(
String
host, int port)
创建一个流字符串并将其连接到所提供的主机端口号 。 |
通过使用这种构造技术建造套件天体,在所提供的地址和端口运行的服务器程序根据参数连接,主机获得一个字符串类型的IP地址。
|
Socket
(
InetAddress
address, int port)
创建串行字符串并将其链接到所提供的 IP 地址的端口号 。 |
该方法参数address用于接收一个InetAddress类型的对象,该对象用于封装一个IP 地址。 在以上套套接字的方法中,最常用的是第一个构造方法。
在索克特班最流行的方法中GetInputstream () 和 GetOutstream () 分别用来收集输入和输出流。当客户与服务挂钩时,以IO流的形式,数据是交互式的。从而实现通信。
| 方法声明 | 功能描述 |
| int getPort() | 此函数产生一个与Socket 对象服务器端端相关的端口号的整型对象。 |
| InetAddress getLocalAddress() | 此方法用于检索与 Socket 对象相关的本地 IP 地址,并加密 IP 地址, 并将其作为 InnetAddress 类型对象返回 。 |
| void close() | 此方法用于结束 Socket 连接和通信 。 在关闭挂坠前, 所有与套接字相关的输入/ 输出流都应该关闭, 因为一个良好的进程应该释放所有资源, 当执行完成后 。 |
| InputStream getInputStream() | 此函数产生一个输入Stream对象, 如果对子由服务器端的Socket 提供, 则用于读取客户端发送的号码, 而不是服务器端发送的数据 。 |
| OutputStream getOutputStream() | 此函数产生输出Stream 对象, 如果由 Socket 从服务器端返回, 则用于向客户端传输数据, 然后数据传输到服务器端 。 |
在索克特班最流行的方法中GetInputstream () 和 GetOutstream () 分别用来收集输入和输出流。当客户与服务挂钩时,以IO流的形式,数据是交互式的。从而实现通信。
要建立 TCP 通信,必须建立一个服务器终端程序和客户端程序,首先需要一个服务器终端程序,以确保数据传输的完整性。
客户端程序:
大多数服务器现在都提供文件上载, 这显然需要使用 TCP 协议, 因为文件上载需要数据安全和完整性。 下一个假想是图片上载, 如下图所示 。

确认服务器可以同时接收多个客户端上传的文件 。
本文由 在线网速测试 整理编辑,转载请注明出处。