NSStream
telnet サーバーに接続するためのソケットを作成しました。実際には、サーバーに正常に接続できます。サーバーの「最初の言葉」でを取得しましたinputStream
が、理解できません。telnet IAC コマンドに関する説明を探しています。
サーバーから受信するコードは次のとおりです。
case NSStreamEventHasBytesAvailable:
if (theStream == inputStream) {
uint8_t buffer[1024];
int len;
while ([inputStream hasBytesAvailable]) {
len = [inputStream read:buffer maxLength:sizeof(buffer)];
if (len > 0) {
NSString * serverSaid = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
if (nil != serverSaid) {
NSLog(@"The server said: %@", serverSaid);
[connectLog insertText:serverSaid];
[connectLog insertText:@"\r"];
}
}
}
}
break;
EventHasBytesAvailable に基づいています。正常に動作しています(ログインプロンプトでサーバーからこんにちはを取得しました)。
サーバーに送信するには、次のようにします。
NSString * theMsg = [NSString stringWithFormat:@"root"];
NSData * msgToSend = [[NSData alloc] initWithData:[theMsg dataUsingEncoding:NSUTF8StringEncoding]];
[outputStream write:[msgToSend bytes] maxLength:[msgToSend length]];
出力ストリームを使用するとどうなるかを確認するために、ボタンの出力をスクリプト化しました。
誰か IAC コマンドや、サーバーにログインしてコマンドを送信する方法を説明してもらえますか?