我已经建立了一个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。 它工作正常(通过登录提示从服务器获得hello)。
现在,要发送到服务器,我这样做:
NSString * theMsg = [NSString stringWithFormat:@"root"];
NSData * msgToSend = [[NSData alloc] initWithData:[theMsg dataUsingEncoding:NSUTF8StringEncoding]];
[outputStream write:[msgToSend bytes] maxLength:[msgToSend length]];
我在一个按钮上编写了输出脚本,看看当我使用outputstream时会发生什么: EventHasBytesAvailable捕获我的输出有输入...服务器告诉我我告诉他的内容!
有人可以向我解释IAC命令和/或如何继续登录服务器并发送命令吗?