我一直在尝试从我的自定义Cocoa应用程序(写在Objective-C当然)发送数据包到我的世界服务器。尽管如此,但我有点困惑。我是用Java做的。这很容易。尽管这样做是客观的,但事实证明它更具挑战性。发送数据包到我的世界服务器:目标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中的数据类型(主要是字符串)如何关联?
任何帮助表示赞赏,谢谢!
没有人知道吗?
2012-06-02
tallen11