2

私はカスタムCocoaアプリケーション(もちろんObjective-cで書かれています)からMinecraftサーバーにパケットを送信しようとしています。私はそれを行う方法として少し混乱しています。私はJavaでそれをしました。とても簡単でした。これを行うことはObjective-cですが、もう少し難しいことが証明されています。

これは私が使用しているコードです:

- (void)handshake
{
    PacketHandshake *packet = [PacketHandshake packetString:[NSString stringWithFormat:@"%@;%@:%i", username, IP, PORT]];
    [packet writeData:dataOut];
}

どの呼び出し:

- (void)writeData:(NSOutputStream *)dataOut
{
    [super writeData:dataOut]; //Writes the "header" which is a char with the value of 0x02 (char packetID = 0x02)
    NSUInteger len = [string lengthOfBytesUsingEncoding:NSUTF16BigEndianStringEncoding]; //Getting the length of the string i guess?
    NSData *data = [string dataUsingEncoding:NSUTF16BigEndianStringEncoding]; //Getting string bytes?
    [dataOut write:(uint8_t*)len maxLength:2]; //Send the length?
    [dataOut write:[data bytes] maxLength:[data length]]; //Send the actual string?
}

事前にサーバーへの接続を確立しましたが、パケットが正しく送信されているかどうかはわかりません。さまざまなデータ型やオブジェクトを送信する方法を誰かに説明してもらえますか。(int、byte / char、short、double、NSString、BOOL / bool)

また、Minecraftで必要とされるようなパケットを送信するための特定のまたは普遍的な方法はありますか?

さて、質問は今だと思います。データ型、主に文字列は、JavaとObjective-Cでどのように関連していますか?

どんな助けでもありがたいです、ありがとう!

誰も知らない?

4

1 に答える 1