Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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开发一个ServerSocket,我想知道,在客户端连接后,是否可以将客户端/套接字发送到另一个ServerSocket。例如,一个客户机连接到123.41.67.817(只是一个随机IP),连接后,客户机会直接发送到例如124.51.85.147(另一个随机IP),当然还有一个端口。这是一张会发生什么的小地图 ServerSocket(侦听连接) 客户端--->ServerSocket(客户端连接) ServerSocket->Client(服务器说:您好,我将把您发送到12

我正在使用java开发一个ServerSocket,我想知道,在客户端连接后,是否可以将客户端/套接字发送到另一个ServerSocket。例如,一个客户机连接到123.41.67.817(只是一个随机IP),连接后,客户机会直接发送到例如124.51.85.147(另一个随机IP),当然还有一个端口。这是一张会发生什么的小地图

ServerSocket(侦听连接)

客户端--->ServerSocket(客户端连接)
ServerSocket->Client(服务器说:您好,我将把您发送到124.51.85.147)
客户端->服务器套接字(客户端说:好!)
客户端-->ServerSocket(124.51.85.147)(客户端被发送到不同的服务器套接字)
ServerSocket(124.51.85.147)->客户端(Server2说:欢迎!)
然后客户端留在Server2(124.51.85.147)

这有可能吗。很抱歉问了这么长的问题

这有可能吗

没有

在最基本的层面上,TCP/IP连接是一对IP地址之间的对话。TCP/IP协议中没有规定在对话过程中更改两个IP地址之一

即使可以在Java级别(以某种方式)序列化
套接字
对象并将其发送到另一个程序(本地或远程),也不可能更改底层会话的IP地址;见上文


历史脚注:很久以前(20世纪80年代),在一个遥远的国家(英国剑桥),有一个网络(剑桥环),其流协议(BSP)实现了一种称为“replug”的操作。如果A和B之间有BSP连接,B和C之间有BSP连接,那么B可以重新连接,以便A直接与C对话。参考:(附件C)

我从未在其他地方见过replug操作。实际上,如果您仔细想想,它需要一个复杂的3向握手来可靠地实现类似replug的操作。在BSP的案例中,他们没有这样做。。。至少根据李约瑟和赫伯特的描述

这有可能吗

没有

在最基本的层面上,TCP/IP连接是一对IP地址之间的对话。TCP/IP协议中没有规定在对话过程中更改两个IP地址之一

即使可以在Java级别(以某种方式)序列化
套接字
对象并将其发送到另一个程序(本地或远程),也不可能更改底层会话的IP地址;见上文


历史脚注:很久以前(20世纪80年代),在一个遥远的国家(英国剑桥),有一个网络(剑桥环),其流协议(BSP)实现了一种称为“replug”的操作。如果A和B之间有BSP连接,B和C之间有BSP连接,那么B可以重新连接,以便A直接与C对话。参考:(附件C)


我从未在其他地方见过replug操作。实际上,如果您仔细想想,它需要一个复杂的3向握手来可靠地实现类似replug的操作。在BSP的案例中,他们没有这样做。。。至少根据《李约瑟与赫伯特》中的描述。

相关——正如咖啡所暗示的:是的,目标是可能的。您可以将客户机“重定向”到不同的服务器,也可以让客户机与多个服务器对话。你不能在同一个插座上做。正如Stephen C在下面所说:“TCP/IP连接是一对IP地址之间的对话。”看看Coffee给你的链接,看看它是否适用于你的场景:好的,谢谢。我很快就会看的。基本上,你要做的是告诉客户端新服务器的地址,然后让客户端连接到新服务器。有点像HTTP重定向,只是你必须自己编码。相关-正如咖啡所暗示的:是的,目标是可能的。您可以将客户机“重定向”到不同的服务器,也可以让客户机与多个服务器对话。你不能在同一个插座上做。正如Stephen C在下面所说:“TCP/IP连接是一对IP地址之间的对话。”看看Coffee给你的链接,看看它是否适用于你的场景:好的,谢谢。我很快就会看的。基本上,你要做的是告诉客户端新服务器的地址,然后让客户端连接到新服务器。有点像HTTP重定向,只是你必须自己编写。我会在90分钟后发布,因为这是我的限制。@Stephen C-这是一个很好的HTTP重定向示例。OP具体问题的答案是“否”。但是,让他提出这个问题的原因几乎可以肯定是几个好的、切实可行的解决方案。@paulsm4-这是真的。然而,没有关于用例是什么的线索。这个问答本身很有用(依我看),我将在90分钟后发布,因为这是我的极限。@Stephen C-这是一个很好的例子。OP具体问题的答案是“否”。但是,让他提出这个问题的原因几乎可以肯定是几个好的、切实可行的解决方案。@paulsm4-这是真的。然而,没有关于用例是什么的线索。这种问答本身就很有用(IMO)