做socket TCP/IP通信,客户端接收的数据量很大,怎么接收处理。是用缓存还是用队列?求代码
public void run(){
while(true){
try{
Thread.sleep(200);
isCome=1;
InputStream in_2 = _socket_2.getInputStream();
byte[] buffer_2 = new byte[in_2.available()];
int readcount=0;
whilewhile(in_2.read(buffer_2)>0){//我要在下面的代码中对接收到的数据进行处理!总出问题,因为收到的数据太多,而且我感觉接收到的数据总在变化,求指教
for (int i = 0; i < lq.length; i++) {
String hex_2 = Integer.toHexString(lq[i] & 0xFF);
if (hex_2.length() == 1) {
hex_2='0' + hex_2;
}else{
}
Receive_date_2[i]=hex_2;
}
i_hex_2=Integer.valueOf(Receive_date_2[4],16);
System.out.println("hex:"+i_hex_2);
switch(i_hex_2){
case 1:
Receive_zct=Receive_date_2;
Handle_date_2();//处理接收到的设备
break;//
}
}
}
catch (Exception e){
}
}
}
------解决方案--------------------
你在socket建立连接后不是开一个线程去处理吗? 接收数据太多的话应该有头有尾吧,循环接收一直到出现末尾。这样一条数据不就完整了吗
------解决方案--------------------
好 1楼说得好
------解决方案--------------------
jni处理数据