我如何使用套接字Java在两台服务器之间进行通信

阿比舍克·卡克拉(Abhishek Kakkerla)

我正在尝试在这里连接两台服务器

以下是我的代码,将在两台服务器上运行

public class Node {

/**
 * @param args the command line arguments
 */

private int nodeID;
private int port;
private ServerSocket nodeSock;
private int maxNodes = SysInfo.maxNodes;
private Socket otherSock;
private PrintWriter ostream;
private BufferedReader in;
private int connectedNodeID;
private HashMap<Integer, Socket> socks;
private HashMap<Socket, PrintWriter> ostreams;
private boolean isPrimary;


public Node(int nodeID, boolean isPrimary){
    this.nodeID = nodeID;
    this.port   = SysInfo.nodePorts[nodeID];
    this.isPrimary = isPrimary;
    socks = new HashMap<Integer, Socket>();
    ostreams = new HashMap<Socket, PrintWriter>();
    System.out.println("current node #"+this.nodeID+" : ");
    try{
        //nodeSock = new ServerSocket(SysInfo.nodePorts[nodeID]);
        nodeSock = new ServerSocket(this.port,0,InetAddress.getByName("127.0.0.1"));
}catch(IOException e){
        e.printStackTrace();
}

    makeSystemReady();
}
private void makeSystemReady()  {
    System.out.println("Making the system ready");
    System.out.println(nodeSock.getLocalSocketAddress()+ ";"+nodeSock.getInetAddress()+";"+nodeSock.getLocalPort());
    for(int i = 0 ; i < SysInfo.maxNodes ; i++ ){
        if(i == nodeID) 
            continue;
       // this.connectToNode(SysInfo.nodePorts[i], i);
        try {
            System.out.println("waiting for connection to node #"+i+" to be established");
            Socket s = new Socket(InetAddress.getByName("127.0.0.1"), SysInfo.nodePorts[i]);
            //socks.put(port, s);
            while(!(s.isConnected()));
            System.out.println("node #"+nodeID+" connected to other node#"+i);

        } catch (IOException ex) {
            /* ignore */
        }
    }
}

我正在尝试检查两个节点是否都已连接,然后才进入下一个阶段(即,只有两个服务器都已启动并正在运行时,我才开始实际的通信。)

但是我在这里没有得到适当的结果。我得到的输出如下.....

在节点0输出...

current node #0 :

准备系统

/127.0.0.1:20000;/127.0.0.1;20000

等待与节点#1的连接建立


并在节点1 .....输出

current node #1 : 

准备系统

/127.0.0.1:20001;/127.0.0.1;20001

等待与节点#0的连接建立

节点#1连接到其他节点#0


在一个节点上,它表示已连接,而在另一节点上,则未显示任何内容。请帮助我在这里我要去哪里错了。

得分_下

您尝试在节点1启动之前建立与节点1的连接。连接失败,并引发您忽略的异常。如果将“ / * ignore * /”更改为“ ex.printStackTrace();”,则会发现这种情况正在发生。

如果您不知道如何处理异常,请不要忽略该异常,因为这种情况每次都会发生。

您不需要此循环:

while(!(s.isConnected()));

套接字在“新套接字”完成之前建立连接,因此在此处检查连接是没有意义的。更糟糕的是,如果先连接然后立即断开连接,您将陷入无限循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两台服务器之间进行通信的最佳方式是什么?

来自分类Dev

如何在共享相同.pem的两台服务器之间进行scp

来自分类Dev

SCP两台服务器之间的文件

来自分类Dev

测试两台服务器之间的连接

来自分类Dev

使用Java在三台服务器之间进行UDP单播通信

来自分类Dev

使用Java在三台服务器之间进行UDP单播通信

来自分类Dev

我想在客户端使用网络套接字进行服务器通信。

来自分类Dev

如何优化rxjs中两台服务器之间网络请求的顺序处理

来自分类Dev

如何在无法直接看到对方的两台服务器之间传输大目录?

来自分类Dev

连接两台计算机以使用Java进行客户端服务器通信

来自分类Dev

使用TCP上的SSL在带有NodeJS的两台服务器之间建立安全连接

来自分类Dev

为什么我们要为一个网站使用两台服务器

来自分类Dev

两台服务器之间的高效文件读/写

来自分类Dev

两台服务器之间的DDP不会重新连接

来自分类Dev

两台服务器之间的Git SSH“权限被拒绝”

来自分类Dev

不在同一网络中的两台服务器之间的scp

来自分类Dev

两台服务器之间的DDP不会重新连接

来自分类Dev

URL编码问题:两台服务器之间的结果不同

来自分类Dev

在两台服务器之间传输数千个文件的最佳linux工具

来自分类Dev

两台服务器之间的高效文件读/写

来自分类Dev

两台服务器之间的 SQL 代理作业依赖关系

来自分类Dev

从一台服务器向另一台服务器进行scp复制时,使用sshpass密码传递到两台服务器

来自分类Dev

如何使用 Spock 对 Java 套接字服务器/客户端对进行单元测试?

来自分类Dev

如何从请求处理程序到套接字服务器进行通信

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

在两台服务器上的MySql Select

来自分类Dev

与两台服务器建立代理

来自分类Dev

两台服务器,未链接,子选择涉及到两台服务器

来自分类Dev

如何在一个域上访问两台服务器

Related 相关文章

  1. 1

    两台服务器之间进行通信的最佳方式是什么?

  2. 2

    如何在共享相同.pem的两台服务器之间进行scp

  3. 3

    SCP两台服务器之间的文件

  4. 4

    测试两台服务器之间的连接

  5. 5

    使用Java在三台服务器之间进行UDP单播通信

  6. 6

    使用Java在三台服务器之间进行UDP单播通信

  7. 7

    我想在客户端使用网络套接字进行服务器通信。

  8. 8

    如何优化rxjs中两台服务器之间网络请求的顺序处理

  9. 9

    如何在无法直接看到对方的两台服务器之间传输大目录?

  10. 10

    连接两台计算机以使用Java进行客户端服务器通信

  11. 11

    使用TCP上的SSL在带有NodeJS的两台服务器之间建立安全连接

  12. 12

    为什么我们要为一个网站使用两台服务器

  13. 13

    两台服务器之间的高效文件读/写

  14. 14

    两台服务器之间的DDP不会重新连接

  15. 15

    两台服务器之间的Git SSH“权限被拒绝”

  16. 16

    不在同一网络中的两台服务器之间的scp

  17. 17

    两台服务器之间的DDP不会重新连接

  18. 18

    URL编码问题:两台服务器之间的结果不同

  19. 19

    在两台服务器之间传输数千个文件的最佳linux工具

  20. 20

    两台服务器之间的高效文件读/写

  21. 21

    两台服务器之间的 SQL 代理作业依赖关系

  22. 22

    从一台服务器向另一台服务器进行scp复制时,使用sshpass密码传递到两台服务器

  23. 23

    如何使用 Spock 对 Java 套接字服务器/客户端对进行单元测试?

  24. 24

    如何从请求处理程序到套接字服务器进行通信

  25. 25

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  26. 26

    在两台服务器上的MySql Select

  27. 27

    与两台服务器建立代理

  28. 28

    两台服务器,未链接,子选择涉及到两台服务器

  29. 29

    如何在一个域上访问两台服务器

热门标签

归档