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 );
}
...
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 );
}
...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货