udp通讯,有没有‘长连接’的说法,能否做消息推送?

jack_jones 发布于 10/10 15:29
阅读 607
收藏 0

送给准备面试的你丨别工作这么久,还不知道Java 线程如何启动的>>>

udp是无连接协议,应该没有‘长连接’的说法吧,做IM通讯时,消息是怎么主动发到客户端的

加载中
0
tiyee
tiyee

并不需要“连接”,只要知道ip和端口号即可。

im又不只是收取,还有发送,自然是知道ip和端口号的。

杰克伦敦尘
杰克伦敦尘
回复 @jack_jones : 如果 client 在内网、server 在公网,则 tcp/udp 的通讯,需要中间有代理服务器、或网关服务器,进行转发。 另外,现在有 ipv6 了,手机联网后,一般都被分配有公网 ipv6 的一两个地址的。
tiyee
tiyee
回复 @jack_jones : udp和tcp都是基于ip协议之上的,如果没有ip和端口是无法发送数据的。udp的recvfrom函数,你看看第6个参数,传一个结构体地址,内核会用目标ip和端口填充,你是可以获取的。
jack_jones
jack_jones
im的server端怎么知道client端的ip+port? client都在内网啊
0
zn123
zn123

1. 自己加消息编号,自己判断做要包重发

2.看看多学学 quic,udt 这些 协议;

0
terrence_tian
terrence_tian

事情还是哪些事情,就看谁来做了。可以由电信的网络设备帮你来做,也可以由你自己来做,不过最终达到的效果会有差异。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部