我用java写了一个Socket服务器,最简单的那种,再用写了一个客户端,两者之间可以正常通讯。
后来我去网上找了一个SocketTool测试工具(应该是VC写的),测试结果如下:
1)SocketTool能连接javaSocket服务器。
2)SocketTool给javaSocket发数据,javaSocket不能接收?
3)javaSocket给SocketTool发数据,SocketTool能接收。
4)SocketTool点击断开,javaSocket一次性收到之前SocketTool发的数据,当然也报错如下:
D:\Tomcat 5.5\webapps\MyChat>java MyServer
连接
aabbcc   [color=#00FF00]//15:23:23 发送数据:aa[1次]15:23:25 发送数据:bb[1次]15:23:27 发送数据:cc[1次]

null
Exception in thread "Thread-0" java.lang.NullPointerException
        at MyServer.run(MyServer.java:27)[/color]
javaSocket接发的代码如下:
try{
   System.out.println("连接");
   BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
   PrintStream out=new PrintStream(client.getOutputStream());
   
   
   while(true){
   
   out.println("收到");                      //发送信息
   out.flush();
    String str=in.readLine(); //接收信息
    System.out.println(str);
 
  
    if(str.equals("end"))
     break;
   }
   System.out.println("断开");
   client.close();
  }catch(IOException ex){
  }怎么样做能使两者之间正常通讯?

解决方案 »

  1.   


    我自己用java写的客户端 是可以的,但是用网上的就不行(应该是VC的),我现在怀疑是不是java和VC之间的通讯不一样?
      

  2.   

    哈哈 我自己解决了 原来把读取数据流方式改了就好了InputStream  in = new  DataInputStream(client.getInputStream());  
    byte   headBytes[]= new byte[20];  
    in.read(headBytes);
    String str = new String(headBytes);
    System.out.println(str);这样的OK了