Кажется, проблема в использовании read()
.Кажется, это не предназначено для использования на неблокирующих сокетах :
Ваша фактическая проблема заключается в том, что read()
будет считывать все данные.На блокирующем сокете, который будет блокироваться, пока соединение не будет закрыто.На неблокирующем сокете, который всегда будет поднимать Blocking
.Вместо этого вы должны использовать input.readBytes
, который вернет количество прочитанных байтов, а затем убедитесь, что вы правильно управляете данными буфера.
В этом случае использование input.readLine()
, вероятно, является самым простым решением.:
trace(oSocketDistant.input.readLine());
При этом я могу видеть HTTP-запрос, как и ожидалось:
Main.hx:20: opening : {host : 127.0.0.1, port : 50231}
Main.hx:29: GET / HTTP/1.1
Main.hx:29: Host: localhost:8008
Main.hx:29: Connection: keep-alive
Main.hx:29: Upgrade-Insecure-Requests: 1
Main.hx:29: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
Main.hx:29: DNT: 1
Main.hx:29: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Main.hx:29: Accept-Encoding: gzip, deflate, br
Main.hx:29: Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
Main.hx:29: Cookie: Idea-369662de=0cbb3289-7f2c-4f82-a094-7409dba8cfb0
Main.hx:29: