文档

Java™教程
隐藏目录
什么是套接字?
路径: 自定义网络
课程: 关于套接字的全部知识

什么是套接字?

通常,服务器运行在特定的计算机上,并具有绑定到特定端口号的套接字。服务器只是等待,监听套接字以等待客户端发出连接请求。

在客户端方面:客户端知道服务器所在的机器的主机名和服务器监听的端口号。为了发起连接请求,客户端尝试与服务器在服务器的机器和端口上会合。客户端还需要向服务器标识自己,因此在此连接期间绑定到一个本地端口号。这通常由系统分配。

客户端的连接请求

如果一切顺利,服务器会接受连接。在接受连接后,服务器会获得一个新的套接字,该套接字绑定到相同的本地端口,并且其远程端点设置为客户端的地址和端口。它需要一个新的套接字,以便在处理已连接的客户端的需求时,继续监听原始套接字的连接请求。

连接已建立

在客户端上,如果连接被接受,则成功创建一个套接字,客户端可以使用该套接字与服务器进行通信。

客户端和服务器现在可以通过写入或从套接字读取来进行通信。


定义: 

套接字是网络上运行的两个程序之间双向通信链路的一个端点。套接字绑定到一个端口号,以便TCP层可以识别数据要发送到的应用程序。


一个端点是IP地址和端口号的组合。每个TCP连接可以通过其两个端点唯一标识。这样,您可以在主机和服务器之间建立多个连接。

Java平台的java.net包提供了一个类Socket,该类实现了Java程序和网络上另一个程序之间双向连接的一方。Socket类位于一个与平台相关的实现之上,隐藏了任何特定系统的细节,使得Java程序可以以平台无关的方式在网络上进行通信。

此外,java.net包还包括ServerSocket类,该类实现了服务器用于监听和接受来自客户端的连接的套接字。本课程将向您展示如何使用SocketServerSocket类。

如果您想连接到Web,URL类和相关类(URLConnectionURLEncoder)可能比套接字类更适合。事实上,URL是与Web的相对高级连接,并使用套接字作为底层实现的一部分。有关通过URL连接到Web的信息,请参阅使用URL


上一页: 关于套接字
下一页: 从套接字读取和写入数据