Closed Wenke-D closed 3 months ago
read_all
has to wait until the connection is shut down in order to read all the data. Could that be the problem?
read_all
has to wait until the connection is shut down in order to read all the data. Could that be the problem?
Yes, this is the problem, I was looking for something simple like Unix.flush
.
Thanks for the explanation !
Hello there,
I was trying to build a TCP server to handle some client requests, I followed example in the README, it works.
But when I make multiple messages in one connection directly with flow, both sides got blocked. What I did is
Server:
flow.read_all
for reading then useflow.copy_string
for writing. Client:flow.copy_string
for writing thenflow.read_all
for readingMy guess is that the data is client data is not send to the server, but buffered somehow, so server get blocked by the
read_all
, so the client get blocked by the secondread_all
. The example in the README works, because the server fibre closed, so the data get to flushed to the client.Later, I switch to
Buf_read
andBuf_write
to explicitely indicate what to write and to read, add line break to my string message and useBuf_read.line
to read data from flow. This works, I can send multiple messages.I am wondering if I use it correctly, because I don't have too much network programming experience before. If it is, maybe it is a good example to put into the README. I can do the honour if needed.
Best