Socket socket = new Socket(ip,9999);      OutputStream os = socket.getOutputStream();
      OutputStreamWriter osw = new OutputStreamWriter(os);
      BufferedWriter bw1 = new BufferedWriter(osw);
      bw1.write(query_string);
      bw1.flush();
      bw1.close();
      ...
      InputStream is = socket.getInputStream();
      InputStreamReader isr = new InputStreamReader(is);
      BufferedReader br = new BufferedReader(isr);
      char rec[] = new char[123];
      int count = 0;
      //以上正常
      String s=br.readLine(); //出错  用sb.read()也出错 都是一样的错 bad file description
      System.out.println("s");
      while (count < 100) {
        rec[count] = (char) br.read();
        count++;
      }
c:
.......
ccbthread( sock )
int sock;
{
int   len, i;    setsockopt(sock,SOL_SOCKET,SO_RCVBUF, (char *)rcvbuf,sizeof(rcvbuf));
    setsockopt(sock,SOL_SOCKET,SO_SNDBUF, (char *)sndbuf,sizeof(sndbuf)); printf("===============================\n\033[80D");    recvstr(sock,rcvbuf,53);
    printf("RecvBuf:[");
    for(i=0;i<200;i++) {
        if(rcvbuf[i]==0) printf("'");
        else printf("%c",rcvbuf[i]);  //正常接受query_string
    }
    printf("]\n"); strcpy(sndbuf,"0098G2000");
len = strlen(sndbuf);
sendstr(sock, sndbuf, len);
printf("SendBuf:[%s]\n",sndbuf);  //这句也正常
printf("len[%d]\n",len);
DoClose(sock);
exit( -2 );
}
...