Imagine that one of your hosts is on a fast pipe and the other host is
on a slow pipe.

Niels.

On 12/21/05, pico <[EMAIL PROTECTED]> wrote:
> Hi all.
>
> I'm currently using libevent to try write a "relay server". What I mean
> by relay server is that it would sit in the middle of a client and a
> server and relay packets between them.In my current implementation I
> have not used write events at all. I've set the socket to be nonblocking
> and simply called send(). I log an error if send returns EWOULDBLOCK,
> but so far (with a lot of testing) this has not happened.
>
> I'm doing the development on a Linux machine and from what I've read
> about TCP Autotuning on Linux, it  is understandable why sending does
> not block. None the less, I'm sure there are cases that would cause my
> server to block on send(). What conditions would cause blocking?
>
> Also I'm not sure what to do when blocking occurs. For example if I
> receive data from a client and then attempt to send it to the server,
> but it blocks. The only thing I can think of is to delete the read event
> of the client (so that I do not receive any more data), register a write
> event for the server. Once my write event is called I can again add a
> read event for the client because I would be able to write to the server
> without blocking.
>
> My above solution sound very complex, which is why I'd appreciate any
> advice on how to handle this situation.
>
> Thanks in advance.
> Pico
>
> _______________________________________________
> Libevent-users mailing list
> [email protected]
> http://monkey.org/mailman/listinfo/libevent-users
>
>

_______________________________________________
Libevent-users mailing list
[email protected]
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to