你只需要这样定义数据类型就可以啦
public class abc{
int aa;
String bb;
char[ ] cc = new char[10];
private void abc( ){
}
}

解决方案 »

  1.   

    我太笨了,你还是给我一段具体的发送代码吧!我其实就是不知道如何把class abc发出去
      

  2.   

    不好意思,我对udp的发送不懂,还是另请高手吧
      

  3.   

    public class abc{
    int aa;
    String bb;
    char[ ] cc = new char[10];
    public static int port = 1000;
    InetAddress address = InetAddress.getByName("server address");public abc( ){
    } public byte[] wrapIt(){
        String message = "";
        message += "0004";
        message += String.valueOf(aa);
        message += DataPrefix.pad(4, "0", bb.length());
        message += bb;
        message += DataPrefix.pad(4, "0", (String.valueOf(cc)).length());
        message += String.valueOf(cc);
        return message.getBytes() }public void send(){try{byte[] buff = abc.wrapIt();
    DatagramPacket packet = new DatagramPacket(buf, buf.length, address, port);DatagramSocket client = new DatagramSocket();
    client.send(packet);}catch(Exception e){
       e.printStackTrace();
    }
    }自己瞎写了几句,没有什么作用, 你参靠一下别人的程序把
      

  4.   

    DataPrefix是什么东西?在java的哪个包里?
      

  5.   

    java里有没有像c++那样 “\0”的东西?
      

  6.   

    如CodeFans得程序已经实现的差不多,主要是DataGramePacket和InetAddress的协作,
    主要如下
    InetAddress   INTEA=InetAddress.getByName("IP地址");
    DatagramPacket  datap=new DatagramPacket(data,data.length(),intea,端口);
    DatagramSocket sendSocket=new DataGramSocket(端口);
    sendSocket.send(datap)//这里就会按IP地址的端口发送了。
    只要是,data是byte型的,而你也需要数据带结构,定义为一个class并声明它序列化接口,然后用WriteObject的方法写到Byte[]类型的data里面,就可以实现udp发送了
      

  7.   

    谢谢各位,我自己写成了。用vc打开其16进制代码与vc开发的输出文件一致,但问题又来了,比如我生成的代码是这样的:
    04 00 00 00 31 33 30 30   30 30 30 30 30 31 30 00
    00 00 00 00 00 00 00 00   31 33 30 30 30 30 30 30
    30 31 31 00 00 00 00 00   00 00 00 00
    头4个字节“04 00 00 00”是那个int,然后20个字节中用11位手机号码13000000010,又用了20个字节存储13000000011
    假设我不知道20个字节中手机号码是多少位,那我怎么能这20个字节里取出实际的字符串呢,不知道java里有没有像vc那样遇到\0就结束的功能