易截截图软件、单文件、免安装、纯绿色、仅160KB

SOLARIS 下 JAVA SOCKET 读取字节异常问题

最近在做MML接口,通过SOCKET连接,向目标主机发送命令,在SOLARIS下返回结果时,发现读取的字节被截取,只能读取前面一部分,但相同代码在WINDOWS主机下,向同一主机发送命令,返回字节正常!
读取字节代码如下:
byte[] buffer = new byte[71680];//现有长度未超过71680

int read = is.read(buffer);
String returnInfo = new String(buffer, 0, read,"GBK");
System.out.println("从服务器获得返回结果:" + returnInfo);

有搞过类似的兄弟过来顶顶啊!

缓冲大小问题吧
你没定义数据包结构吗?
先读包头的数据包长度,根据长度来读剩下的字符内容

终于找到组织了,请大哥多多提示啊,不清楚哎:(

好象以前也遇到过在UNIX操作系统中的这个问题... 就是经常出现读不完.
原因是数据是分多个包过来的, 只用一个read()只能读一个包, 下一个包可能隔个0.1秒才过来.
记得当时的解决方法是, 需要循环的读取, 每次读完之后等待0.1秒, 再看Stream中是否有数据, 如果连续等待了50次(也就是5秒都没有任何数据过来), 就认为是读完了.

恩· ·有可能,我试试·:)
谢谢大哥,不过正式环境得到晚上才能测试。

引用
好象以前也遇到过在UNIX操作系统中的这个问题... 就是经常出现读不完.
原因是数据是分多个包过来的, 只用一个read()只能读一个包, 下一个包可能隔个0.1秒才过来.
记得当时的解决方法是, 需要循环的读取, 每次读完之后等待0.1秒, 再看Stream中是否有数据, 如果连续等待了50次(也就是5秒都没有任何数据过来), 就认为是读完了.




相关问答:

java如何控制远程Linux重启

我目前在本地的linux上写了一个swing的界面,想通过这个界面来控制其它电脑的linux重启。
我知道用Runtime.getRuntime().exec("shutdown -r");可以控制本机Linux重启,但是怎么控制远程的linux重启呢? ......

JAVA字符流问题

字符流的读和写最终在底层都是通过字节流来完成的吗? 读写文本文件字符流应该就可以了吧。。
各位大哥大姐帮帮忙阿

Java流包括字节流和字符流,字节流通过IO设备以字节数据的方式读入,而字符流则是通过字节流 ......

java语法问题 - Java / Java EE

import java.io.*;
class FileTest
{
public static void main(String [] args) throws Exception
{

File fDir=new File(File.separator);
String strFile="java源代码测试"+File.separato ......

java applet在html中无法显示

我的java applet 嵌入html后无法显示,而用appletviewer显示正常为什么,还有就是用html converter转化后可以显示,为什么?请大侠赐教!
HTML code:

<HTML>
<HEAD>
<TITLE>TEST.HTML< ......

java日期处理 - Java / Java SE

当知道一个日期,如何把这个日期所在旬的前后两个日期取出
比如输入20090905,就输入20090901 20090910
输出20090901 20090910

取得天数后作一下判断再把这个方法用下void set(int field, int value)  
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号