例子:
服务端:
...
conn.Write。。
buffer := make([]byte, 1024)
for {
n, err := conn.Read(buffer)
....
客户端:
...
conn.Write。。。
buffer := make([]byte, 1024)
for {
n, err := conn.Read(buffer)
...
1
freedomSky 2019-03-26 12:02:33 +08:00
关键字 “双工”
|
2
passerbytiny 2019-03-26 12:19:49 +08:00 via Android 1
一条双向路,两个方向同时有人走,会把人丢了吗?
在外部看 socket 的通道和缓冲区都是读写隔离的。 |
3
Akiyu 2019-03-26 12:21:50 +08:00
去看一下 UNP
我记得底层是类似两条管道实现的, 所以不会 |
4
opengps 2019-03-26 12:25:29 +08:00
不冲突啊
|
5
zarte OP @freedomSky 那两边同时传大数据超出了各自的缓冲区,两边都会死等吗?
|
6
alexsunxl 2019-03-26 16:24:52 +08:00
超过缓冲区就会丢包, 然后速度会降下来, 直到你应用层能处理掉缓冲区, 又把速度生上来。
|
7
alexsunxl 2019-03-26 16:25:21 +08:00 1
好像也差不多是等死的意思
|
9
justicelove 2019-03-26 16:48:33 +08:00
不会,建议多了解下 TCP
|
10
sundev 2019-03-26 17:03:05 +08:00
楼主的问题对应“全双工”、“滑动窗口”
|