我一直在嘗試從我的自定義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中的數據類型(主要是字符串)如何關聯?
任何幫助表示讚賞,謝謝!
沒有人知道嗎?