Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 在同一个REPL会话中通过套接字发送和接收时的奇怪行为_Sockets_Julia - Fatal编程技术网

Sockets 在同一个REPL会话中通过套接字发送和接收时的奇怪行为

Sockets 在同一个REPL会话中通过套接字发送和接收时的奇怪行为,sockets,julia,Sockets,Julia,我的问题涉及上的最后一部分(即“编辑”位),它涉及通过套接字异步接收数据的简单演示;作为一个玩具示例,“发送”套接字是在同一个REPL会话中创建的 如果我关闭输入流sIn,或者如果我使用适当的外部输出流进行测试(例如,假设我从我正在侦听的同一个REPL会话中执行netcat会话,而不是sOut=connect(9002)),然后正常终止该会话,那么一切都会正常工作 但是如果我不执行close(sIn)而是执行close(sOut),那么行“连接正常关闭”就永远不会执行,我也不明白为什么。。。。有

我的问题涉及上的最后一部分(即“编辑”位),它涉及通过套接字异步接收数据的简单演示;作为一个玩具示例,“发送”套接字是在同一个REPL会话中创建的

如果我关闭输入流
sIn
,或者如果我使用适当的外部输出流进行测试(例如,假设我从我正在侦听的同一个REPL会话中执行netcat会话,而不是
sOut=connect(9002)
),然后正常终止该会话,那么一切都会正常工作

但是如果我不执行
close(sIn)
而是执行
close(sOut)
,那么
行“连接正常关闭”
就永远不会执行,我也不明白为什么。。。。有什么想法吗

这是我的终端课程的副本,演示了这种奇怪的行为:

julia>server=listen(9002);
julia>sOut=connect(9002);
julia>sIn=accept(服务器);
julia>TaskRef=@async try
虽然是真的
In=字符串(readavailable(sIn));
如果!i空(In);println(“从服务器接收:$In”);其他的打破结束
结束
println(“连接正常关闭”);
抓住E
println(“连接已关闭(状态为$E)”;
结束;
朱莉娅>写(sOut,“不要重复我说的一切!\n”);
从服务器收到:停止重复我所说的一切!
朱莉娅>关闭(sOut);
朱莉娅>
julia>istaskdone(任务参考)
真的
朱莉娅>
另外,这是在Julia版本0.7.0-DEV.874/LinuxMint64位上