[Gambas-user] Nested Socket Write does not work

Doriano Blengino doriano.blengino at ...1909...
Fri Mar 6 09:52:48 CET 2009


CARLOS GTR ha scritto:
> Hi, I am working in chat program in Gambas that works with TCP sockets.
> The problem is that the clients that connect to the server need to receive
> the list of the contacts that are online (as any chat), The Server has the
> list but cant send it.
>
> This is the code:
>    DIM y, x AS Integer
>    FOR x = 0 TO Client.Max
>       FOR y = 0 TO listacontactos.Count - 1
>          ' Message(“dgdsgfds”) If I uncomment this line everything works
>          WRITE #Client[x], "[" & y & "]" & listacontactos[y].Text,
> Len(listacontactos[y].Text) + 4
>       NEXT
>    NEXT
>
> That code with the message instruction commented only send 1 contact, when I
> uncomment that dummy message line everything works perfect.
>
> Another interesting fact is that If I put break points for the nested FORs
> and see what happens the programs runs perfect even without the dummy
> message instruction.
>   
Sorry, I don't know how gambas works with sockets, but instead I noticed 
something else that perhaps is worth to be investigated. When you write 
on socket, you send something like "[0]text". The length of this example 
string is 7 characters, but your formula gives 8 because you add 4 to 
the length of the original text. Perhaps, this code tries to access past 
the end of the string. In other languages this could lead to an 
exception - don't know what happens in gambas: who knows... may be it 
does strange things...

Regards,
Doriano





More information about the User mailing list