我一直在尝试从我的自定义 Cocoa 应用程序(当然是用 Objective-C 编写的)向我的世界服务器发送数据包。我对如何做到这一点有点困惑。我是用 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 中是如何关联的?
任何帮助表示赞赏,谢谢!
没人知道?