try {

inStream = hClientSocket.getInputStream(); outStream = hClientSocket.getOutputStream();

ps = new PrintStream(outStream);

} catch (Exception e) {

System.out.println("error:getInputStream or getOutputStream fail --");

System.out.println(e.toString());
} try {

System.out.println("now read the contents");

InputStreamReader isr = new InputStreamReader(inStream);
BufferedReader bf = new BufferedReader(isr);
String rcvBuffer = "";
String szTmp = null; while (iRunning == true) {

if ((szTmp = bf.readLine()) != null) {
                        //如果收到客户端消息,将iTimeCount重置为0;
iTimeCount = 0;

System.out.println(szTmp);如果是C++客户端的话,发的内容如果没有\n,\r的话,我这里的bf.readLine()就不会返回,但是java客户端发就可以

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sunhuacai】截止到2008-07-30 15:49:39的历史汇总数据(不包括此帖):
    发帖的总数量:8                        发帖的总分数:130                      每贴平均分数:16                       
    回帖的总数量:11                       得分贴总数量:2                        回帖的得分率:18%                      
    结贴的总数量:2                        结贴的总分数:30                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:6                        未结的总分数:100                      
    结贴的百分比:25.00 %               结分的百分比:23.08 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=sunhuacai
      

  2.   

    这里是一个java写的服务端,为什么C++客户端发送消息给它时,如果消息内容没有"\n"或"\r"时,它就收不到,但是C++客户端显示是发送成功的;
    如果是java客户端发送消息就不会出现上述情况!
      

  3.   

    坏习惯啊...
    夸平台读取,不要用BufferedReader,也不应该用\n来作为行标识
    TCP传输用InputStream来读数据,用byte[]来作为数据缓冲
    传输协议应指定包结构,并首先传送包大小,使对端能正确读取数据