Steve, Thanks I didn't know that, I modified the approach and it works 
correctly.

You have a great company and appreciate your support!



On Friday, July 14, 2017 at 3:58:48 PM UTC-4, Steve Hannah wrote:

> You shouldn't do this:
>
> byte[] response = new byte[is.available()];
>
> From the javadocs for InputStream:
>
>
> https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#available()
>
>>
>> Note that while some implementations of InputStream will return the 
>> total number of bytes in the stream, many will not. It is never correct to 
>> use the return value of this method to allocate a buffer intended to hold 
>> all data in this stream.
>
>
> Steve
>
>
> On Fri, Jul 14, 2017 at 12:53 PM, <shop.servic...@gmail.com <javascript:>> 
> wrote:
>
>>  
>> import ca.weblite.codename1.net.Socket;
>> import java.io.InputStream;
>> import java.io.OutputStream;
>>
>> public static int socketReadRetries = 3;
>> public static int socketTimeOut = 3000;
>> public static Socket mySocket = null;
>>
>> String CMD = "pingFromMobile~END~";
>> Object obj = null;
>> mySocket = new Socket(host, port, socketTimeOut);
>> OutputStream os = mySocket.getOutputStream();
>> os.write(frame(CMD.getBytes()));
>>           
>>
>> for (int a = 0; a < socketReadRetries; a++) {
>>
>>                 is = mySocket.getInputStream();
>>
>>                 byte[] response = new byte[is.available()];
>>
>>                 if (response.length == 0) {
>>
>>                     Thread.sleep(200);
>>
>>                     continue;
>>
>>                 }
>>
>>                 try {
>>
>>                     for (int b = 0; b < response.length; b++) {
>>
>>                         response[b] = (byte) is.read();
>>
>>                     }
>>
>>                     obj = response;
>>
>>                 } catch (Exception h) {
>>
>>                     h.printStackTrace();
>>
>>                     if (mySocket != null) {
>>
>>                         mySocket.close();
>>
>>                     }
>>
>>                     return null;
>>
>>                 }
>>
>>                 break;
>>
>>             }
>>
>>             if (is != null) {
>>
>>                 is.close();
>>
>>             }
>>
>>             if (mySocket != null && !mySocket.isClosed()) {
>>
>>                 mySocket.close();
>>
>>             }
>>
>>
>> On Thursday, July 13, 2017 at 11:05:45 AM UTC-4, Steve Hannah wrote:
>>>
>>> Can you share a little bit more of your client source code.  It's hard 
>>> to comment without seeing more.
>>>
>>> On Thu, Jul 13, 2017 at 4:44 AM, <shop.servic...@gmail.com> wrote:
>>>
>>>> My app opens a socket, sets a timeout does some transaction, (typically 
>>>> request data from the server) closes the connection and processed the 
>>>> request
>>>> I don't see an exposed method to set timeout in the builtin socket api
>>>>
>>>> The lib version (https://github.com/shannah/CN1Sockets) works very 
>>>> well for my needs.
>>>>
>>>> Please advise
>>>>
>>>> On Thursday, July 13, 2017 at 12:30:56 AM UTC-4, Shai Almog wrote:
>>>>
>>>>> I don't know, I only use our builtin socket api and not the lib.
>>>>> Maybe Steve knows.
>>>>>
>>>>> Closing a socket after every message will make your connection very 
>>>>> slow. You might as well use HTTPS which is generally better. I strongly 
>>>>> recommend avoiding sockets.
>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "CodenameOne Discussions" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to codenameone-discussions+unsubscr...@googlegroups.com.
>>>> Visit this group at 
>>>> https://groups.google.com/group/codenameone-discussions.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/codenameone-discussions/52b4daf2-fa2d-4d86-94de-4cd53c1b0711%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/codenameone-discussions/52b4daf2-fa2d-4d86-94de-4cd53c1b0711%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> -- 
>>> Steve Hannah
>>> Software Developer
>>> Codename One
>>> http://www.codenameone.com
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "CodenameOne Discussions" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to codenameone-discussions+unsubscr...@googlegroups.com 
>> <javascript:>.
>> Visit this group at 
>> https://groups.google.com/group/codenameone-discussions.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/codenameone-discussions/af805466-72b8-456f-b05f-94441161cc47%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/codenameone-discussions/af805466-72b8-456f-b05f-94441161cc47%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Steve Hannah
> Software Developer
> Codename One
> http://www.codenameone.com
>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to codenameone-discussions+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/9af2bfa4-8199-4144-a060-ea3b9681fb41%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to