真实的UDP-何时发生TCP握手?

问题描述 投票:0回答:1

试图为我的游戏(在Gamemaker:Studio制造)开发可靠的UDP协议,该协议连接到Java服务器。我需要确保数据包到达,并以正确的顺序到达。 我正在尝试将TCP协议模拟建模,而让我感到困惑的一件事是三向握手:

什么时候发生?

基本上是当您连接到某些东西时握手?只有一次吗? (直到连接掉落) 如果是这样,那么我将哪些数据附加到常规数据包?

,我有我的最初3个数据包用于连接:SYN -> SYN-ACK -> ACK

lelet假设这一切都顺利进行,我们已经连接了繁荣。

然后说我想向服务器发送一条消息:“你好”。我基本上是为此消息做

SYN -> SYN-ACK -> ACK

吗?我到此消息数据包/数据报到底是什么,以确保其到达并到达秩序?
    

然后说我想向服务器发送一条消息:“你好”。我基本上是在做syn吗?

没有。该数据包没有保修。

java tcp udp game-maker-studio-2 reliable-message-delivery
1个回答
2
投票

您可以在数据包中添加一个顺序编号,并以编程方式对其进行重新排序:如果您接收到数据包1,2,3,而超过5个必须等待数据包4。

我需要确保数据包到达并以正确的顺序到达。

如果您需要重新传输和有序到达(并且可能避免重复),那么从编程方面做一些比TCP更好的事情是非常困难的!

在我的经验中,我使用UDP发送了广播数据包(只有数据包ID来了解我收到的内容),以使当前网络中创建每个服务器。想象1个客户称为“ A”,寻找网络中可能的匹配项。等待玩家的其他客户正在广播中发送UDP数据报,以便该网络中的每个人都知道。客户端“ A”连接到比赛后,主机将通过TCP链接到“ A”,以获得稳定的连接。要获取数据包的订单,请发送一个初始ID数字,因此,当客户端接收到数据包时(例如,ID = 1-> ping,ID = 2-> player_position,id = 3->> HP_UPDATE)。您应该以编程方式采取行动以获取数据包的订单。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.