BBS水木清华站∶精华区

发信人: qinming (qm), 信区: Java 
 
要求两个机子用JAVA SOCKET编程。接受数据的一端要有一定的通用性。(不知道发来的 
是什么类型的数据)所以接受端不断地从SOCKET流中读BYTE数据,(以字节的方式读)。 
 
但是有问题,当发送端发一个数据后,接受端总要读两次。 
比如说,发送端发一个INT型数据,接受端第一次从流中读一个BYTE,然后又读了3个BYTE 
。 
读LONG型数据也一样,第一次从流中读一个BYTE,然后又读了7个BYTE。 
这是为什么? 
还望高手指点! 
 
 
 
 
 
发信人: wangxd (lover), 信区: Java 
 
【 在 qinming (qm) 的大作中提到: 】 
 要求两个机子用JAVA SOCKET编程。接受数据的一端要有一定的通用性。(不知道发来 
 的 
 是什么类型的数据)所以接受端不断地从SOCKET流中读BYTE数据,(以字节的方式读) 
 。 
  
 但是有问题,当发送端发一个数据后,接受端总要读两次。 
 比如说,发送端发一个INT型数据,接受端第一次从流中读一个BYTE,然后又读了3个 
 BYTE 
 。 
 读LONG型数据也一样,第一次从流中读一个BYTE,然后又读了7个BYTE。 
 这是为什么? 
 还望高手指点! 
  
 
Try the ObjectInputStream/ObjectOutputStream.. 
 
 
 
 
发信人: jjhwang (小受), 信区: Java        
 
Java的INT本来就是四个字节32位的呀,LONG也是8个字节64位, 
不这样读进来,岂不要丢数据了? 
 
【 在 qinming (qm) 的大作中提到: 】 
 要求两个机子用JAVA SOCKET编程。接受数据的一端要有一定的通用性。(不知道发来的 
 是什么类型的数据)所以接受端不断地从SOCKET流中读BYTE数据,(以字节的方式读)。 
  
 但是有问题,当发送端发一个数据后,接受端总要读两次。 
 比如说,发送端发一个INT型数据,接受端第一次从流中读一个BYTE,然后又读了3个BYTE 
 。 
 读LONG型数据也一样,第一次从流中读一个BYTE,然后又读了7个BYTE。 
 这是为什么? 
 还望高手指点! 
  
 
 
 
 

BBS水木清华站∶精华区