使用套接字连接两台机器

时间:2016-11-23 12:53:12

标签: java sockets

我尝试使用Socket连接两台机器。

我将客户端代码放入机器A:

import java.io.*;
import java.net.*;

public class MyClient {
    public static void main(String[] args) {
        try {   
            Socket s = new Socket("IP ADDRESS",5555);
        //  Socket s = new Socket("localhost",6669);
            DataOutputStream dout = new DataOutputStream(s.getOutputStream());
            dout.writeUTF("Hello Server");
            dout.flush();
            dout.close();
            s.close();
        } catch(Exception e) {
            System.out.println(e);
        }
    }
}

在Machine B中运行服务器代码

import java.io.*;
import java.net.*;

public class MyServer {
    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(5555);
            Socket s = ss.accept(); //establishes connection 

            DataInputStream dis = new DataInputStream(s.getInputStream());

            String  str = (String) dis.readUTF();
            System.out.println("message= " + str);

            ss.close();

        } catch(Exception e) {
            System.out.println(e);
        }
    }
}

两者都在同一网络的机器中

但它没有运行,CMD也没有错误。

1 个答案:

答案 0 :(得分:0)

首先,当我使用" localhost"编译代码时作为主机名,并在同一台机器上运行客户端和服务器应用程序...它的工作原理。服务器接收消息并打印出来。

由此我得出结论,代码是正确的(足够),真正的问题与你的网络有关; e.g。

  • 这可能是路由问题。
  • 这可能是防火墙问题。
  • 您的物理网络或网络接口可能有问题。

然而,这些都不是编程问题。