strange problem with socket.accept()
Charma
Motoko_Kusanagi at web.de
Wed May 30 06:39:43 PDT 2007
thanks!
this did fix the problem... I didn't know that writef is writing to
buffer only...
Daniel Giddings wrote:
> I don't see a flush command in std.stdio but it mentions it extends off
> of std.c.stdio so perhaps try adding:
>
> import std.c.stdio;
>
> ...
>
> writef( "Waiting for user..." ); // **
> fflush(stdout);
> user = server.accept( );
>
> Daniel Giddings wrote:
>> Perhaps the output is not being flushed before the socket blocks your
>> thread waiting for a user?
>>
>> Charma wrote:
>>> hello,
>>> I have a very strange problem with the accept function of TpcSocket.
>>> I programmed a mini-server who is waiting for a user and does
>>> something as soon a user has connected(this has no concern) anyway, i
>>> got this part of code:
>>>
>>> ...
>>> scope TcpSocket server = new TcpSocket( );
>>> Socket user;
>>> server.blocking(true);
>>> server.bind( addr );
>>> server.listen( 10 );
>>>
>>> ...
>>> while(!killServer)
>>> {
>>> writef( "Waiting for user..." ); // **
>>> user = server.accept( );
>>> writef("[OK]")
>>> ...
>>> }
>>>
>>> Now my problem is that the line marked with ** is only displayed when
>>> a user connects... which is very strange... i can't figure out the
>>> problem, since i tell him to FIRST write that line and THEN wait for
>>> a user...
>>>
>>> Any ideas?
>>> thanks
More information about the Digitalmars-d-learn
mailing list