Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器如何知道客户端的端口号,它将在其中使用java编程套接字向客户端发送响应?_Java_Sockets - Fatal编程技术网

服务器如何知道客户端的端口号,它将在其中使用java编程套接字向客户端发送响应?

服务器如何知道客户端的端口号,它将在其中使用java编程套接字向客户端发送响应?,java,sockets,Java,Sockets,在使用java的socket编程中,我们需要在客户端指定端口号,它将通过该端口号与使用socket类的服务器进行通信。另一方面,在服务器端,我们不需要指定客户端端口号,我们将通过该端口号向客户端发送响应,我们只需创建一个端口号,通过该端口号我们将侦听请求,并使用accept()方法等待该请求到达。因此,尽管我们没有指定客户端端口号,但请有人解释如何将响应从服务器发送到客户端?两个TCP端口号都在每个TCP段中。当服务器接受传入的TCP连接时,服务器(特别是服务器中的TCP协议实现)知道响应客户端

在使用java的socket编程中,我们需要在客户端指定端口号,它将通过该端口号与使用socket类的服务器进行通信。另一方面,在服务器端,我们不需要指定客户端端口号,我们将通过该端口号向客户端发送响应,我们只需创建一个端口号,通过该端口号我们将侦听请求,并使用accept()方法等待该请求到达。因此,尽管我们没有指定客户端端口号,但请有人解释如何将响应从服务器发送到客户端?

两个TCP端口号都在每个TCP段中。当服务器接受传入的TCP连接时,服务器(特别是服务器中的TCP协议实现)知道响应客户端所需的所有信息。

如果我的客户端决定通过端口1300进行通信,但我的邻居选择了27364,则两者都应能工作,服务器必须事先不知道要与哪个客户机端口通信,这在每个请求中是不同的。昨天不是也问了这个问题吗?好的,但是套接字编程中有没有函数负责打开或创建客户机n端口并将其与TCP段一起发送?我的意思是端口号是如何创建的。如果没有显式地将地址(=端口,用于TCP)绑定到接口,那么在发出connect调用时会任意选择一个地址。一般来说,客户端不应使用显式端口号。“一般来说,客户端不应使用显式端口号”-除非网络架构或通信协议规定使用特定端口。