现在我已经有了一个ServerSocket,一个Socket,还需要一个ServerSocket+Socket 
请问哪位大大能帮我把代码贴出来吗??

解决方案 »

  1.   

    啥意思,是要一个client端的吗/
      

  2.   

    是这样的  我现在已经有一个client端 还有一个server端, 但是现在缺少一个中间的一个程序 是用来接收client 的数据 并且要运算方程  然后再把结果发到server端去, 这就应该是需要一个 ServerSocket+Socket 下面是我的代码clientimport java.io.*;
    import java.net.*;
    import java.util.*;class Q3Client {      private final static int portSqrt = 1234;     public static void main(String[] args) {     while (true){
            try {
                Socket socket;
                socket = new Socket(InetAddress.getLocalHost(),portSqrt);
      DataInputStream in = new 
    DataInputStream(socket.getInputStream());
                DataOutputStream out = new
     DataOutputStream(socket.getOutputStream());
     System.out.println();
    Scanner in2 = new Scanner(System.in);
                int x = in2.nextInt();
                out.writeInt(x); 
                int n = in.readInt(); // wait for result from server 
                System.out.println("x + "+x+" is = " + n);  
                socket.close();
            } catch (IOException e) {System.out.println(e);}
            
         }
       }
    }serverimport java.io.*;
    import java.net.*;
    class Q3Server {
    final static int portSqrt = 1234; // any number > 1024
    final static Stack<Integer> stack = new Stack<Integer>(); public static void main(String[] args) {
    System.out.println("Server running..."); 
            try {   
                ServerSocket servesock = new ServerSocket(portSqrt);
                // for service requests on port portSqrt
                while (true) {
                        // wait for a service request on port portSqrt
                        Socket socket = servesock.accept(); 
                        // start thread to service request
                        new Thread(new SquareRoot(socket)).start();
                }
            } catch (IOException e) {e.printStackTrace();}
        }
    }class SquareRoot implements Runnable {
        Socket socket;    SquareRoot(Socket s) {
            socket = s;
        }    public void run() {
            try {
                DataInputStream in = new DataInputStream(socket.getInputStream());
                DataOutputStream out = new DataOutputStream(socket
                        .getOutputStream());
                int x = in.readInt(); // get number from client calculate square root
                SqrtServer.stack.push(x);            int b = 0;
            while (!SqrtServer.stack.isEmpty()) {
                 int a = SqrtServer.stack.pop();
         b = b + a;
     }
             out.writeInt(b); 
             System.out.println(b);  
             SqrtServer.stack.push(b);
                socket.close(); // close connection
            } catch (IOException e) {
            }
        }
    }
      

  3.   

    楼主是这个意思么?
    C->Mid->S
    or
    C<=>S
    这个不难,太困了,没精力改你的代码。
      

  4.   

    恩就是这个意思C->Mid->S
    唔  
    好心的大大帮个忙啊 5555555555555555555
      

  5.   

    你这个mid打算放哪?
    client or server?
    放哪就写在哪呗!
      

  6.   

    我写的socket不用中间程序,直接就能c->s,补知道你用中间程序有什么用
      

  7.   

    放在server端就好了,在server接到数据的时候,自己算一下就好了
      

  8.   

    你试试用2个服务器,服务器1即接受socket也发送socket,服务器2值接受socket。这样也许可以解决中见程序的问题,不过我觉得多此一举
      

  9.   

    感觉是个代理在同一个类里面,建立ServerSocket接收请求,然后再建立Socket连接SERVER。收到后做一个中转。。有结果了,是不是也要中转呢??
      

  10.   

    呵呵。。本身就是C--->S就可以啦。
    要不你就C-->S-->S(这两个S的端口不一样就行啦。)
    我以前做过一个C-->S的IOCQ的毕业设计。
    在S端里面来一个启动的线程,和一个接收数据的线程就可以啦。如在启动线程时,同时启动接收数据的线程。这样就可以用接收数据的线程不断地监听那个端口就可以啦!
      

  11.   

    自己写出来了  只不过在这里还是要感谢psyuhen童鞋,谢谢你的思路 结贴给分去喽 
    大家圣诞快乐