最后更新:2022-07-17 22:32:56 手机定位技术交流文章
计算机网络是一个由两个或多个计算机组成的网络,在同一网络中,任何两个计算机都可以直接通信,所以所有计算机都必须遵循相同的网络协议
TCP/IP协议(TCP和IP):
TCP的连接导向和可靠的协议。
IP协议是群交换传输的协议;
UDP协议:
UDP协议是一个不连接的、不可靠的传输协议.
学习TCP编程时,我们首先需要知道的是索克特,那么,索克是什么?当你开发网络应用程序时,你会遇到索克的概念。索克是一个抽象的概念,一个应用程序通过一个Socket来建立一个远程连接,并通过TCP/IP协议将数据内部传输到网络中;
当使用接口进行网络编程时,它基本上是两个过程之间的网络通信,其中一个进程必须作为服务器端服务,它积极监控指定的端口,另一个过程必须是客户,客户端必须主动连接到服务器的IP地址和指定的端口,如果连接成功,服务器端将成功地建立与客户端的TCP连接,双方可以随时发送和接收数据
当服务器与客户端之间成功建立接口连接时:
对于服务器端,它是索克指定的IP地址和指定的端口号码;
对于客户端,其插座是其所在计算机的IP地址和操作系统指定的随机端口号码;
为了使用TCP编程,我们首先编写服务器端程序,而Java标准库提供 java.net.ServerSocket来实现指定IP和指定端口的监视,ServerSocket的构建方法如下:
ServerSocket server = new ServerSocket(5237);
5237:定义的端口号码;这里我们没有指定一个IP地址,表明计算机上的所有网络接口正在进行监控。
如果ServerSocket监视成功,我们使用一个死循环来处理客户端连接,在上面的code.accept()中,服务器意味着每次有一个新的客户端连接,返回一个索克实例,这个接口对象用于与新连接的客户端进行通信;
如果客户端没有连接,接受()方法将封锁并等待。如果多个客户端同时连接,ServerSocket将连接到队列中,然后逐个进行处理。对于Java程序,只需一次又一次地调用 accept() 来获取新的连接。
客户端程序比服务器简单得多。 典型的客户端程序如下:
当接口连接成功创建时,无论是服务器端,还是客户端,我们都使用索克特的例子来在线交流。因为TCP是一个基于流程的协议,因此,Java标准库使用InputStream和OutputStream来封装索克数据流,所以我们使用插座电流,和普通IO流类似;
在编写网络数据时,必须使用 flush() 方法。如果 flush() 不被调用,有些情况下,客户和服务器不接收数据,这不是Java标准库设计问题,相反,当我们把数据写成流形时,这不是直接向网络发送的只写信,相反,先写到内存缓冲器上,直到缓冲区填满,只有一次才能真正发送到网络上,该设计的目的是提高传输效率。如果缓冲区数据小,我们还想强迫这些数据发送到网络上,必须调用 flush()来强制发送缓冲数据
.
本文由 在线网速测试 整理编辑,转载请注明出处。