C#是一个tcp服务端
现在想用java去调用这个服务端,我调用出来的东西全是空字符串,但是C#调用有好好的!!public String SendTcpStr ( String host , int port , byte [] bStr ){
String recieve="";
try{
this.client = new Socket(InetAddress.getByName(host),port);
System.out.println("[info] Connect to " + host + " successful.");
BufferedReader systemIn = new BufferedReader(new InputStreamReader(System.in));
BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(client.getOutputStream());
System.out.println("[info] Start...");
bos.write(bStr, 0, bStr.length);
System.out.println(this.client);
boolean done = false;
byte[] bytes = new byte[this.client.getReceiveBufferSize()];
int len = 0;
while (!done){
len = bis.read(bytes);
if (len == -1){
done = true;
break;
}else{
recieve = new String(bytes, 0, len);
System.out.println(bytes);
System.out.println(len);
System.out.println(recieve);
bos.write(systemIn.readLine().getBytes());
bos.flush();
System.out.println(bos);
}
}
System.out.println("[info] Stop.");
System.out.println(bytes);
System.out.println(len); return recieve;
}catch (Exception ex) {
ex.printStackTrace(System.err);
}finally{
try{
if (client != null){
client.close();
}
} catch (IOException e){
e.printStackTrace();
}
}
return null;
}这个是我的java代码!!请各位指点一下!
现在想用java去调用这个服务端,我调用出来的东西全是空字符串,但是C#调用有好好的!!public String SendTcpStr ( String host , int port , byte [] bStr ){
String recieve="";
try{
this.client = new Socket(InetAddress.getByName(host),port);
System.out.println("[info] Connect to " + host + " successful.");
BufferedReader systemIn = new BufferedReader(new InputStreamReader(System.in));
BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(client.getOutputStream());
System.out.println("[info] Start...");
bos.write(bStr, 0, bStr.length);
System.out.println(this.client);
boolean done = false;
byte[] bytes = new byte[this.client.getReceiveBufferSize()];
int len = 0;
while (!done){
len = bis.read(bytes);
if (len == -1){
done = true;
break;
}else{
recieve = new String(bytes, 0, len);
System.out.println(bytes);
System.out.println(len);
System.out.println(recieve);
bos.write(systemIn.readLine().getBytes());
bos.flush();
System.out.println(bos);
}
}
System.out.println("[info] Stop.");
System.out.println(bytes);
System.out.println(len); return recieve;
}catch (Exception ex) {
ex.printStackTrace(System.err);
}finally{
try{
if (client != null){
client.close();
}
} catch (IOException e){
e.printStackTrace();
}
}
return null;
}这个是我的java代码!!请各位指点一下!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货