【已解决】有没有golang大手子,问题求解
<i class="pstatus"> 本帖最后由 zhou 于 2024-11-20 10:35 编辑 </i><br /><br />
<font size="6">需要真大手子,不懂go的就别乱讲了</font><br />
<font color="Red">net.Conn</font>如何<font color="Red">多次Read</font>,仅实现这种方式,不要讲别的(比如读取后保存,如果能实现读取后再放回去也可以)<br />
实现后再跟帖,不要已读乱回 <font size="5">GPT不行! GPT不行! GPT不行! </font><br />
<img id="aimg_TzCHh" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="https://pic.cm/i/2024/11/19/sdt3r6.png" onmouseover="img_onmouseoverfunc(this)" onload="thumbImg(this)" border="0" alt="" /><br />
<font size="6">补一个大概的例子</font><br />
<img id="aimg_dB48e" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="https://pic.cm/i/2024/11/19/sm1n9a.png" onmouseover="img_onmouseoverfunc(this)" onload="thumbImg(this)" border="0" alt="" /><br />
<i class="pstatus"> 本帖最后由 zhou 于 2024-11-20 10:41 编辑 </i><br />
<br />
已解决,感谢<a href="https://hostloc.com/home.php?mod=space&uid=57559" target="_blank">@哈宝儿</a> 大佬提供思路<br />
参考 stackoverflow: https://stackoverflow.com/questions/26196813/peek-into-conn-without-reading-in-go<br />
<img id="aimg_dma9q" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="https://pic.cm/i/2024/11/20/h2pzm7.png" onmouseover="img_onmouseoverfunc(this)" onload="thumbImg(this)" border="0" alt="" /><br />
<br />
<font size="6">我不理解有些人为什么一直GPT GPT的,并且无差别喷懂不懂的,既然你那么懂,倒是给出解决方案啊???在这里无脑就喷我目的是让你显眼吗???</font> 当你认为GPT连这种基础的技术问题都解决不了的时候应该先问问自己的问题有没有问题 楼主真的了解并且明白自己的需求是什么吗?<br />
你自己明白多次Read意味着什么吗?多次Read的前提条件是什么你知道吗? <i class="pstatus"> 本帖最后由 迷茫的tom 于 2024-11-19 18:15 编辑 </i><br />
<div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16044071&ptid=1365358" target="_blank"><font color="#999999">zhou 发表于 2024-11-19 18:01</font></a></font><br />
客户端就是只发一次,本贴的目的是在服务端Read两次,请问你有什么高见?????<br />
<br />
...</blockquote></div><br />
<br />
没有啥高见,因为流式io和缓冲区设计的时候就不是给你这样用的,不止是net.Conn,基本大部分主流语言对于都是连接流Read完之后就从缓冲区移除<br />
你的数据你都拿完了,后面的你爱存还是怎么样都是你自己的事情,如果你有十分重要的需求,必须要这么做,你可以重写或者重新实现自己的net.Conn包,然后在读取时,再存回去<br />
最后,我没开玩笑,你应该好好审视自己的需求 golang这么先进的lang难道read不能传大小的吗? <div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16044006&ptid=1365358" target="_blank"><font color="#999999">欧阳逍遥 发表于 2024-11-19 17:50</font></a></font><br />
你应该把 服务端 和 客户端代码都贴出来。。。<br />
<br />
客户端可以循环读, 但是也要服务端 循环发才行。</blockquote></div><br />
<br />
他一直只能读一次的原因,很大概率是客户端的问题,客户端不一直发消息,服务端哪里能收到消息噢<br />
但是他自己估计一直在懵逼,因为我推测他连短连接长连接,还有tcp/udp都不清楚,所以你们跟他说什么数据包包头之类他才啥都不知道,甚至连自己在问啥估计都还懵逼着<br />
不过也很正常,谁都是从小白过来的<br />
<img src="https://hostloc.com/static/image/smiley/yct/007.gif" smilieid="46" border="0" alt="" /> <div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16043930&ptid=1365358" target="_blank"><font color="#999999">zhou 发表于 2024-11-19 17:34</font></a></font><br />
当然不行,常见方法都试过了</blockquote></div><br />
tcp socket里面,要么你就自己粘包处理,要么就ReadFull让go给你自动粘包一次性读完所有客户端发来的数据,从你的回帖可以看出你对socket机制确实都不熟悉,所以没法沟通。 gpt分分钟搞定 <div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16043894&ptid=1365358" target="_blank"><font color="#999999">iiii.im 发表于 2024-11-19 17:25</font></a></font><br />
gpt分分钟搞定</blockquote></div><br />
GPT能解决我还来发帖干嘛<img src="https://hostloc.com/static/image/smiley/yct/003.gif" smilieid="50" border="0" alt="" />