简单说就是客户端发2个参数给服务器端,然后服务器把这2个参数给某方法,把该方法的执行结果返回给客户端现在服务器的方法已经写好了,,,就是这个参数怎么传递最关键是用户在客户端输入第一个参数后敲回车,这时候光标还得等待用户继续输入第2个参数……这个怎么实现?服务器端怎么把得到的2个参数分拆?

解决方案 »

  1.   

    应该可以做成类结构传送,完成后flush
      

  2.   

    具体怎么样啊…………
    比客户端传一个屏幕输入的字符串过去是这样写:
    String sentence = inFromUser.readLine(); 
          sendData = sentence.getBytes(); 
    sendData是传输过去的数据现在我要传键盘输入的一个string和一个int过去…………
    怎么写?
      

  3.   

    Client:Socket socket = new Socket(socket.getInetAddress(),socket.getPort());
    ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());
    toserver.writeObject("chat");
    ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());
    String s = fromserver.readObject().toString();
    toserver.flush();Server:public Proccess(Socket socket,ServerThread thread)
    {
    this.proclient = socket;
    this.tt = thread;
    this.useronline=tt.useronline;
    this.vchat=tt.vchat;

    /////////////////////////////////////////////////////////////////////////////////
    /*********************   实现与服务器的通信   ***************************************/
    /////////////////////////////////////////////////////////////////////////////////


    try
    {
    fromClient = new ObjectInputStream(proclient.getInputStream());
    out = new ObjectOutputStream(proclient.getOutputStream());
    }catch(Exception e){}


    this.start();
    }

    public void run()
    {
    try{
      type = fromClient.readObject().toString();
                          }
                          catch.....
                          ........
              }
      

  4.   

    楼上的看不懂。。忘了说我写的是UDP协议的下面是个例子:客户端在输入一串字符后,服务器返回大写的字符
    class UDPClient { 
        public static void main(String args[]) throws Exception 
        { 
      
          BufferedReader inFromUser = 
            new BufferedReader(new InputStreamReader(System.in)); 
      
          DatagramSocket clientSocket = new DatagramSocket(); 
      
          InetAddress IPAddress = InetAddress.getByName("localhost"); 
      
          byte[] sendData = new byte[1024]; 
          byte[] receiveData = new byte[1024]; 
      
          String sentence = inFromUser.readLine(); 
          sendData = sentence.getBytes();         
    DatagramPacket sendPacket = 
             new DatagramPacket(sendData, sendData.length, IPAddress, 9876); 
      
          clientSocket.send(sendPacket); 
      
          DatagramPacket receivePacket = 
             new DatagramPacket(receiveData, receiveData.length); 
      
          clientSocket.receive(receivePacket); 
      
          String modifiedSentence = 
              new String(receivePacket.getData()); 
      
          System.out.println("FROM SERVER:" + modifiedSentence); 
          clientSocket.close(); 
          } 
    } class UDPServer { 
      public static void main(String args[]) throws Exception 
        { 
      
          DatagramSocket serverSocket = new DatagramSocket(9876); 
      
          byte[] receiveData = new byte[1024]; 
          byte[] sendData  = new byte[1024]; 
      
          while(true) 
            { 
      
              DatagramPacket receivePacket = 
                 new DatagramPacket(receiveData, receiveData.length); 
               serverSocket.receive(receivePacket); 
    String sentence = new String(receivePacket.getData()); 
      
              InetAddress IPAddress = receivePacket.getAddress(); 
      
              int port = receivePacket.getPort(); 
      
                          String capitalizedSentence = sentence.toUpperCase();           sendData = capitalizedSentence.getBytes(); 
      
              DatagramPacket sendPacket = 
                 new DatagramPacket(sendData, sendData.length, IPAddress, 
                                   port); 
      
              serverSocket.send(sendPacket); 
            } 
        } 
    }  我现在要在客户端传2个参数进去,一个String类,一个int的....然后服务器里接收并把他们传入static String pwd(String x,int y)执行,然后返回....就是传输过程怎么样的....上面的由于只要输入一个字符串,所以一个String就够了....
    我只要在这个例子改下就可以了.....关键怎么改
      

  5.   

    你用的BufferedReader inFromUser = 
            new BufferedReader(new InputStreamReader(System.in)); 
    缓冲字节流换成
    ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());
    ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());
    对象输入输出流
      

  6.   

    没看明白
    RMI是不是更好
    定义接口服务器实现接口
    客户端调用...
      

  7.   

    老大,你用UDP协议怎么能实现呢,万一客户端发送了两个数据,服务器只受到一个,那一边完毕,一边等待,那怎么行
      

  8.   

    liwei_0223(悲惨) :代码我已经给出了啊 ……问下楼上的,这样怎么写呢。。能否示范下