BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 11-14-2007, 02:45 AM   #1 (permalink)
Thumbs Must Hurt
 
Join Date: Jun 2007
Model: 8800
PIN: N/A
Carrier: GPRS
Posts: 68
Post Thanks: 0
Thanked 0 Times in 0 Posts
Red face A problem of receiving data from server

Please Login to Remove!

Hi, everyone:

I want to receive data from server again and again in a while loop , but it seems some strange things happen. The server has sent the data through a socket, and the data format is "data length + data". And if the client connect to the server by a socket connection, the server will send the data to client.

the receiving codes are :
Code:
byte[] buf = new byte[4];
SocketConnection sock = (SocketConnection)Connector.open(server.toString(),Connector.READ);
DataInputStream inStream = sock.openDataInputStream();                
while(true)
{                                   
   count = inStream.read( buf,0, buf.length);                              
   if ( (count == 4) && (buf != null) )
   {                        
       dataLength = bytes2int(buf); //analyze the package head 
    }
   imageData = new byte[dataLength];                                       
   count = inStream.read(imageData,0,imageData.length);   
   //process the imageData
   .........
}
And during the testing, I find that the program runs well at the beginning, but the dataLength will occur error sometimes, it's a big value and this makes the failture of the "new byte[dataLength]". From the log file of the server, I know that the datalength sent by server is OK.

So does anyone have any ideas?Thank you very much!
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





Copyright 2004-2014 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.