| 
 | 
 
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册 
 
 
 
×
 
 
- 发信人: jimh (傻茄子), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Tue Apr 13 13:33:19 1999)
 
  
- 说实际点吧,我用DatagramSocket将一个这样的结构:
 
 - class ClientInfo
 
 -   
 
 - {
 
 -   
 
 -    String Name;
 
 -   
 
 -    InetAddress Address;
 
 -   
 
 -    int Port;
 
 -   
 
 -  
 
 -   
 
 -    public ClientInfo( String N, InetAddress Addr, int port )
 
 -   
 
 -    {
 
 -   
 
 -     Name = N;
 
 -   
 
 -     Address = Addr;
 
 -   
 
 -     Port = port;
 
 -   
 
 -    }
 
 -   
 
 -   }
 
  
- 传到client方,但是怎么把它还原呢?
 
  
 
- 【 在 jjhwang (小受) 的大作中提到: 】
 
 - : 转换成什么?
 
 - : 自己编程实现啦
 
 - : 如,四个byte是一个int,
 
 - : 可以用最后一个byte与上一个FF000000,
 
 - : 再加上一个倒数第二个byte与上一个00ff0000……
 
 - : 依此类推嘛
 
  
 
- 发信人: jjhwang (小受), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Tue Apr 13 14:41:39 1999)
 
  
- 你在发送前,把每个数据项都转换为byte,然后再传,如:
 
 - for (int  j = 0 ; j < Name.length() ; j++ )
 
 -                 message[i++] = (byte)Name.charAt(j);
 
 - 就可以把Name加到byte流里了,
 
 - 然后,把InetAddress用方法得到一个byte[],用InetAddress.getAddress()就可以,
 
 - 再接在message[]后面,最后再加上int型的Port,方法前面已经说过了,
 
 - 就把这个类组成了一个byte[],把这个messae[]发过去,
 
 - 在接收方再进行相反的操作,就可以拆开了。
 
  
- 【 在 jimh (傻茄子) 的大作中提到: 】
 
 - : 说实际点吧,我用DatagramSocket将一个这样的结构:
 
 - : class ClientInfo
 
 - : {
 
 - :    String Name;
 
 - :    InetAddress Address;
 
 - :    int Port;
 
 - :    public ClientInfo( String N, InetAddress Addr, int port )
 
 - :    {
 
 - :     Name = N;
 
 - :     Address = Addr;
 
 - :     Port = port;
 
 - :    }
 
 - :   }
 
 - : 传到client方,但是怎么把它还原呢?
 
  
 
- 发信人: jimh (傻茄子), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Tue Apr 13 15:16:36 1999)
 
  
- 其他的好说,那个InetAddress怎么还原哪。
 
  
- 其实我是把所有的类型都用各自的ToStrin转成了String再一起转成byte[]的。
 
 - Name和Port还是好还原的。但InetAddress怎么还原呀。
 
 -   
 
  
 
- 【 在 jjhwang (小受) 的大作中提到: 】
 
 - : 你在发送前,把每个数据项都转换为byte,然后再传,如:
 
 - : for (int  j = 0 ; j < Name.length() ; j++ )
 
 - :                 message[i++] = (byte)Name.charAt(j);
 
 - : 就可以把Name加到byte流里了,
 
 - : 然后,把InetAddress用方法得到一个byte[],用InetAddress.getAddress()就可以,
 
 - : 再接在message[]后面,最后再加上int型的Port,方法前面已经说过了,
 
 - : 就把这个类组成了一个byte[],把这个messae[]发过去,
 
 - : 在接收方再进行相反的操作,就可以拆开了。
 
  
 
- 发信人: jjhwang (小受), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Tue Apr 13 15:32:49 1999)
 
  
 
- 【 在 jimh (傻茄子) 的大作中提到: 】
 
 - : 其他的好说,那个InetAddress怎么还原哪。
 
 - : 其实我是把所有的类型都用各自的ToStrin转成了String再一起转成byte[]的。
 
 - : Name和Port还是好还原的。但InetAddress怎么还原呀。
 
 - 前面发送时不是转成了byte[]吗?
 
 - 实际上每个InetAddress由四个byte组成,你再把收到的byte,
 
 - 先截下Name所占的byte,然后连着取出四个byte,把四个byte转成“XX.xxx.xxx.xxx”
 
 - 应该很容易了吧?
 
 - 然后用InetAddress.getByName(String host)就搞定了。
 
 - 试试看!
 
  
- --
 
  
- 发信人: jimh (傻茄子), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Wed Apr 14 12:18:58 1999)
 
  
- 能不能在本地把结构传输到BufferedStream中,再从Buffer中取出来
 
 - 当作UDP packet发出去,再在另一端通过BufferedStream取出来呢?
 
  
 
 
- 【 在 ft (甜甜甜) 的大作中提到: 】
 
 - : I am not sure if you have to use UDP packet.
 
 - : I think it will be much more convenient to use TCP/IP stream.
 
 - : There is no need to make such conversion.
 
 - : 
 
 - : 【 在 jimh (傻茄子) 的大作中提到: 】
 
 - : 
 
  
 
- 发信人: jjhwang (小受), 信区: Java       
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Wed Apr 14 13:14:42 1999)
 
  
- 【 在 jimh (傻茄子) 的大作中提到: 】
 
 - : 能不能在本地把结构传输到BufferedStream中,再从Buffer中取出来
 
 - : 当作UDP packet发出去,再在另一端通过BufferedStream取出来呢?
 
  
- 当然是可以的。
 
  
- 传输的方法有无数种,但你要做的是保证你的结构转成byte流,以及
 
 - 再把byte流还原成结构这两个步骤不出错。
 
  
- 至于用BufferedStream,我觉得没什么必要,一般是在TCP的Socket连接时,
 
 - 为了加快速度而用Buffered流做个缓存。
 
  
- --
 
  
- 发信人: ft (甜甜甜), 信区: Java
 
 - 标  题: Re: JAVA中怎么进行类型转换?
 
 - 发信站: BBS 水木清华站 (Tue Apr 13 23:39:54 1999) WWW-POST
 
  
- I am not sure if you have to use UDP packet.
 
 - I think it will be much more convenient to use TCP/IP stream.
 
 - There is no need to make such conversion.
 
  
- 【 在 jimh (傻茄子) 的大作中提到: 】
 
 - : 说实际点吧,我用DatagramSocket将一个这样的结构:
 
 - : class ClientInfo
 
 - : {
 
 - :    String Name;
 
 - :    InetAddress Address;
 
 - :    int Port;
 
 - :    public ClientInfo( String N, InetAddress Addr, int port )
 
 - :    {
 
 - :     Name = N;
 
 - :     Address = Addr;
 
 - :     Port = port;
 
 - :    }
 
 - :   }
 
 - : 传到client方,但是怎么把它还原呢?
 
  
  复制代码 
 |   
 
 
 
 |