j2me-j2se socket连接

时间:2012-03-06 09:42:59

标签: sockets java-me wifi midp

我正在开发一个j2me应用程序,它使用套接字通过WiFi将数据发送到PC。什么应该是服务器地址?即我应该在下面的代码中使用什么而不是'localhost'?

客户代码(j2me):

SocketConnection sc = (SocketConnection)
Connector.open("socket://localhost:9002");
DataOutputStream os = null;
try{
    os = sc.openDataOutputStream();
    os.writeUTF("Test Dama");
} finally{
  sc.close();
  os.close();
}

服务器代码(j2se):

    ServerSocket echoServer = null;
    String line;
    DataInputStream is;

    Socket clientSocket = null;

    try {
       echoServer = new ServerSocket(9002);
    }
    catch (IOException e) {
       System.out.println(e);
    }
    try {
       clientSocket = echoServer.accept();
       is = new DataInputStream(clientSocket.getInputStream());

       line = is.readUTF();

       System.out.println("Received:"+line);

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

1 个答案:

答案 0 :(得分:0)

这取决于服务器的ip / domain。

如果您在本地网络(家庭/办公室)上运行东西,那么只需找出运行服务器代码的机器的IP。 在linux系统中,你可以使用 ifconfig 命令找到它,然后在输出中ip地址在 inet addr 下。在Windows系统中,使用 ipconfig / all

一旦你有运行服务器的机器的ip,只需将它而不是你在客户端使用的 localhost

如果您希望这在公共网络上运行,则必须在具有static ip(或使用dynamic DNS)的计算机上运行服务器代码。