在客户端与服务器的交互过程中,特别是多个客户端需要与服务器同步时,例如游戏同屏,要保证客户端A到客户端B的消息成功发送。但是由于网络的复杂情况,可能会出现以下情况:

1)服务器崩溃,msg:N包未发出
2)网络抖动,msg:N包被网络设备丢弃

 

一般情况下,当A向服务器发送一个信息之后,只能说明A发送成功了,但是不能保证服务器一定接收到了数据。在某些情况下,可能会出现上述丢包的原因。如何保证消息不丢失呢?

 

可以采取以下方法:

1,消息确认当A向服务器发送一条消息后,等待服务器返回处理请求成功的确认,即Ack

2,服务器接收A发送的消息后,要发送给B。

3,B,接收到消息到给服务器发送一个确认的Ack.

 

但是使用这种方法也可能会有问题,比如发送端可能因为上述原因接收不到Ack的确认消息,那该如何保证消息不丢失呢?这就需要借助于超时和重传机制了。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式