客户端通过Socket s = new Socket(IP, PORT);就能够访问到服务器端,那么如何实现这个功能:
当客户端访问到服务器端后,服务器进行一些处理(比如查询数据库),处理之后把信息反馈给客户端?
之前我也用IP与PORT的方式连接,在一个局域网内,通过IP的方式可以进行服务器与客户端的通讯。
但出现了一个问题:如果客户端在一个局域网中,我的服务器是一个单独的拨号上网的机器。这时我再通过IP找客户端的电脑,找到的也只是她所在的路由器的IP而已。那么信息是不会传给其中的某台电脑的。
请问这个问题如何解决?

解决方案 »

  1.   

    答:不明白楼主的问题.因为:无论客户机在哪些,只好它通过new Socket(...)与服务器进行了TCP的正常连接之后,你的服务器就已经可以与客户机进行TCP的数据通信了(包括:服务器进行一些处理(比如查询数据库),处理之后把信息反馈给客户端),这个是没有问题的.
    不明白你的问题.
      

  2.   

    高手,我的问题是服务器如何向客户端进行通讯。也就是说如何发送数据给客户端。
    源代码是这样的: try {
    ServerSocket socket = new ServerSocket(7890);
    while (true) {
    // ******************************************************
    Socket s = socket.accept();
    InetAddress clientAddress = s.getInetAddress();
    DataInputStream dis = new DataInputStream(s.getInputStream());
    System.out.println("server:" + dis.readUTF());
    String clientAddr = clientAddress.toString();
    clientAddr = clientAddr.substring(1);
    System.out.println("客户端来自:" + clientAddr); }
    } catch (Exception e) {
    System.out.println(e);
    }那么发送数据应该用哪个对象?客户端如何接收?