关于socket 编程的问题,请大家帮我看看

xlt-evil · 2018-12-10 15:52:39 · 994 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-12-10 15:52:39 的主题,其中的信息可能已经有所发展或是发生改变。

*实现功能是:客户端在终端持续输入数据,在服务器上持续打印出来

服务端代码 image.png 客户端代码 image.png

演示代码 客户端 image.png 服务端 image.png

断开客户端连接后 image.png

希望大家能帮我找到问题在哪里谢谢!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

994 次点击  
加入收藏 微博
8 回复  |  直到 2018-12-11 13:15:50
Geekoo-Joker
Geekoo-Joker · #1 · 6年之前

你怎么知道客户端已经发送了? 只是写入了而已

Geekoo-Joker
Geekoo-Joker · #2 · 6年之前

如果没有记错的话,写入文件,在没有关闭这个文件之前,写入的内容,是没有保存在文件内的

Geekoo-Joker
Geekoo-Joker · #3 · 6年之前

就像恩

你打开一个文件,一边写着,然后不关闭,再打开 查看,你会发现并没有你在另一个窗口输入的内容

xlt-evil
xlt-evil · #4 · 6年之前
Geekoo-JokerGeekoo-Joker #1 回复

你怎么知道客户端已经发送了? 只是写入了而已

嗯嗯,我修改了客户端代码解决了image.png

Geekoo-Joker
Geekoo-Joker · #5 · 6年之前

写入socket的话,

既然你都已经用reader了 为什么写入的时候不用Writer呢 用法也很简单 Writer = bufio.NewWriter(conn)

写入的时候直接 Writer.Write(byte[]) 当然要是想直接发送,而不是先缓存起来 再调用一次 Writer.Flush()

另外你的reader 用法也不太对

另外推荐 你一个 IM server 源码

https://github.com/Geekoo-Joker/im

fwhez
fwhez · #6 · 6年之前

用con.Write和Read去读写,不要用scan,尤其是客户端

xlt-evil
xlt-evil · #7 · 6年之前
Geekoo-JokerGeekoo-Joker #5 回复

写入socket的话, 既然你都已经用reader了 为什么写入的时候不用Writer呢 用法也很简单 Writer = bufio.NewWriter(conn) 写入的时候直接 Writer.Write(byte[]) 当然要是想直接发送,而不是先缓存起来 再调用一次 Writer.Flush() 另外你的reader 用法也不太对 另外推荐 你一个 IM server 源码 https://github.com/Geekoo-Joker/im

谢谢,你的建议,受教了

xlt-evil
xlt-evil · #8 · 6年之前
fwhezfwhez #6 回复

用con.Write和Read去读写,不要用scan,尤其是客户端

scan 这个方法确实让我很困惑

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传