• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 尝试向服务器发送 telnet 命令

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:39:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试连接到远程登录服务器(通过 AMX 运行 NetLinx,以防万一)并向它发送一些命令,就像我打开终端并执行“远程登录(地址)”并开始输入命令一样。我可以接收消息,但无法使用我在 http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server 的教程中找到的此代码发送消息:

- (void)sendMessage: (NSString*) message{ //called when the user interacts with UISwitches, is supposed to send message to server
NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSASCIIStringEncoding]]; //is ASCIIStringEncoding what I want?
[outputStream write:[data bytes] maxLength:[data length]];
NSLog(@"Sent message to server: %@", message);
}

- (void)initNetworkCommunication { //called in viewDidLoad of the view controller
    CFReadStreamRef readStream;
    CFWriteStreamRef writeStream;
    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.90", 23, &readStream, &writeStream); //192.168.1.90 is the server address, 23 is standard telnet port
    inputStream = (__bridge NSInputStream *)readStream;
    outputStream = (__bridge NSOutputStream *)writeStream;

    [inputStream setDelegate:self];
    [outputStream setDelegate:self];

    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    [inputStream open];
    [outputStream open];
}

它似乎向服务器发送了某种消息但可能格式错误。我的猜测是这是一个字符串格式问题。 ASCII 是我想用于 telnet 的吗?如果我接收它在发送命令时打印的消息并将其粘贴到运行 telnet 的终端中,则服务器会正​​常接收并处理命令。

这是我尝试发送的示例命令:SEND_STRING dvJAND,"'#AUX2=0',$0D"

另一个谜团是,读取输入流并打印,我在发送上述内容时看到了这个:

2013-08-20 00:20:23.791 [7548:907] server said: S
2013-08-20 00:20:23.793 [7548:907] server said: END_STRING dvJAND,"'#AUX
2013-08-20 00:20:23.795 [7548:907] server said: 2=0',$0D"

但是当我在终端中键入该命令时,服务器根本没有响应并按其应有的方式工作。



Best Answer-推荐答案


发现我唯一做错的事情是没有用\r 结束我的消息!我读到你需要以\n 结尾,但\r 是为我做的。

关于ios - 尝试向服务器发送 telnet 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18327437/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap