NetworkStream有关问题
NetworkStream问题
怎么才能NetworkStream.write()一次,另一边就NetworkStream.read()一次
我这边循环发送的时候,对面总是一次接收完我发的所有东西,加断点的时候程序是write一次read一次,不加断点就成了write多次才read一次
------解决方案--------------------
对面也有缓冲区的
------解决方案--------------------
做个应答,你让他发,他在发,等待你的通知
------解决方案--------------------
比如说msdn的信令格式,每一个消息最后以”换行回车“为结束。于是在”read“的那一端就应该判断每一次收到的消息是否是换行回车结束的。如果不是,则存起来留待以后处理;如果是,则将所有保存的内容连带最后读到的内容,解析出一个或者多个消息(根据中间是否有换行回车进行split划分),然后逐一处理消息。
最简单的信令格式,人家规定了”换行回车“的具体规范含义。
------解决方案--------------------
是数据来了就接收,不是仅仅收到就处理.
你需要给数据来了注册一个事件,数据到达了就执行.而不是用一个线程循环等待.
好好看看各种博客论坛,源码其实就几句话,4个函数搞定的.
不要只着眼于现成的工程,那些封装到工程里的,基本代码异常复杂,
简单的几行代码没必要还做成工程让你下载
------解决方案--------------------
这是不可能的。
具体解决办法可以搜一下“粘包”
怎么才能NetworkStream.write()一次,另一边就NetworkStream.read()一次
我这边循环发送的时候,对面总是一次接收完我发的所有东西,加断点的时候程序是write一次read一次,不加断点就成了write多次才read一次
------解决方案--------------------
对面也有缓冲区的
------解决方案--------------------
做个应答,你让他发,他在发,等待你的通知
------解决方案--------------------
比如说msdn的信令格式,每一个消息最后以”换行回车“为结束。于是在”read“的那一端就应该判断每一次收到的消息是否是换行回车结束的。如果不是,则存起来留待以后处理;如果是,则将所有保存的内容连带最后读到的内容,解析出一个或者多个消息(根据中间是否有换行回车进行split划分),然后逐一处理消息。
最简单的信令格式,人家规定了”换行回车“的具体规范含义。
------解决方案--------------------
是数据来了就接收,不是仅仅收到就处理.
你需要给数据来了注册一个事件,数据到达了就执行.而不是用一个线程循环等待.
好好看看各种博客论坛,源码其实就几句话,4个函数搞定的.
不要只着眼于现成的工程,那些封装到工程里的,基本代码异常复杂,
简单的几行代码没必要还做成工程让你下载
------解决方案--------------------
怎么才能NetworkStream.write()一次,另一边就NetworkStream.read()一次
我这边循环发送的时候,对面总是一次接收完我发的所有东西,加断点的时候程序是write一次read一次,不加断点就成了write多次才read一次
这是不可能的。
具体解决办法可以搜一下“粘包”