当我在DOC下运行java ClientService 27 28
报错java.lang.IllegalArgumentException: illegal length or offset请问是什么错误??????????

解决方案 »

  1.   

    //客户机端程序
    import  java.io.*;
    import  java.net.*;
    public class ClientService
    {
     public static void main( String args[])
     {
        String host="localhost";
        DatagramSocket  UDPClientSocket; //用于发送接受UDP
        DatagramPacket  ClientPacket; //用于保存UDP 的内容
        InetAddress  RemoteHost;
        int  RemotePort;
        byte  dataBuf[] = new byte[512];
        String  Datagram,s;
       if ( args.length < 2 )
        {
          System.out.println("请输入本地端口号,服务器端口号");
          System.exit(0);
        }
       
        try{
            UDPClientSocket = new DatagramSocket(Integer.parseInt(args[0]));
            RemoteHost = InetAddress.getByName(host);
            RemotePort = Integer.parseInt( args[1] );
            Datagram = new String("This mail is from " 
    + InetAddress.getLocalHost().getHostName()
                 + ", give me a receipt\n if you can receive it, Thank you!");
            dataBuf = Datagram.getBytes();
            ClientPacket= new DatagramPacket( dataBuf, Datagram.length, RemoteHost, RemotePort);
            UDPClientSocket.send( ClientPacket ); // 向远程服务器发出信息
    for(int i=0;i<512;i++) dataBuf[i]=0;
            UDPClientSocket.receive( ClientPacket );//接收远程主机的返回信息
            Datagram = new String( ClientPacket.getData());
            System.out.println("从远程服务器主机" + host + "收到如下应答信息:");
            System.out.println( Datagram );
            UDPClientSocket.close();
        }//try
        catch( Exception e ) {
            System.err.println( e );
        }
     }
    }