要读一个Socket
的内容,如果是空的话就会被一直阻塞,但是我希望如果当前读不到内容的话就返回nothing
或者空数组也行。
bytesavailable
结果不管有没有总是 0
…
julia> bytesavailable(sock.buffer)
0
julia> write(sock, pack([0,1,:ping,()]))
9
julia> bytesavailable(sock.buffer)
0
julia> bytesavailable(sock)
0
julia> readavailable(sock) |> unpack
4-element Vector{Any}:
0x01
0x01
nothing
true
而且 readavailable
能读到 read
不行…
julia> read(sock)
ERROR: InterruptException:
Stacktrace:
[1] poptask(W::Base.InvasiveLinkedListSynchronized{Task})
@ Base .\task.jl:827
[2] wait()
@ Base .\task.jl:836
[3] wait(c::Base.GenericCondition{Base.Threads.SpinLock})
@ Base .\condition.jl:123
[4] wait_readnb(x::TCPSocket, nb::Int64)
@ Base .\stream.jl:413
[5] read(stream::TCPSocket)
@ Base .\stream.jl:876
[6] top-level scope
@ REPL[46]:1
julia> readavailable(sock)
5-element Vector{UInt8}:
0x94
0x01
0x01
0xc0