Hi,

 

I am pretty new to POE. I just wrote a little sever application which is
using POE::Wheel::SocketFactory to open

a new listening TCP socket and later using POE::Wheel::ReadWrite on this
socket to read input from the client.

 

POE::Wheel::ReadWrite is using POE::Filter::Stream as it's filter, to
get the raw data from the client. The client

is sending a combined string of ascii and binary code. This is kinda
working good so far, as long as I use my 

perl written test client. Whenever I use the C# client which my
colleagues wrote and which will be the final

client, once this is in production, it seems that the non-blocking
socket is a problem.

 

When the client side sends data, I receive the request and it is handled
by the InputEvent. But the client

data is not coming in just one stream, there seems to be some
fragmentation, which is a problem because

the next chunk of data from the client is handled as new request, which
breaks the data verification process

on the client side (authentication string, length of bytes that are sent
from the client, and so on.).

 

In my opinion this should be fixable by making the socket blocking, so
the client is forced to wait for the

server to reply back once the client flushed its request. Is there any
way I could get POE::Wheel::ReadWrite

blocking (e. g. by using a different POE Driver)?

 

Here are some code examples of what I am doing:

http://dokuleser.privatepaste.com/24c3c1eba5/qazgfiIeTA

 

Any advice would be greatly appreciated.

 

 

Thanks

Winni

 

Reply via email to