说话的设备我尝试打开一个TCP流说话与可可的应用程序的设备。 我搜索了网络,发现有一些可能性,但我有点卡住了。使用TCP/IP
我决定使用NSStream方式(因为它是在可可触摸引用,将是有益的,如果我想将我的应用程序到iPhone我相信),所以这里是我的代码:
@implementation AppDelegate
- (IBAction)connect:(id)sender {
[NSStream getStreamsToHost:"192.168.1.4" port:23 inputStream:&inputStream outputStream:&outputStream];
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
}
// Both streams call this when events happen
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
if (aStream == inputStream) {
[self handleInputStreamEvent:eventCode];
} else if (aStream == outputStream) {
[self handleOutputStreamEvent:eventCode];
}
}
- (void)handleInputStreamEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventHasBytesAvailable:[self readBytes];
break;
case NSStreamEventOpenCompleted:
// Do Something
break;
default:
case NSStreamEventErrorOccurred:
NSLog(@"An error occurred on the input stream.");
break;
}
}
所以,当我点击我的连接按钮,它应该打开流到我的主机,并使我的2个对象(输入流和输出流)
我想要达到的第一步是在NSTextView中的inputStream和知道如果主机已达到或不...但我仍然停留:(
如果有人能照亮我的路,那会很棒!我是Stack Overflow的新手,我很乐意帮助社区了解我所知的很多东西! :)
我更新了我的代码,它似乎光来了,慢慢地,但它的到来:) 我做了一个流一个telnet服务器。我在texview中看到了“hello”。 现在,我想向用户发送&密码才能将命令发送到服务器,但这里是我的“发送用户&通”按钮的代码:
- (IBAction)sendusername:(id)sender {
NSString * usernameMsg = [NSString stringWithFormat:@"user @", [usernameField stringValue]];
NSData * usertosend = [[NSData alloc] initWithData:[usernameMsg dataUsingEncoding:NSUTF8StringEncoding]];
[outputStream write:[usertosend bytes] maxLength:[usertosend length]];
}
按照我的searchs,服务器应该响应我喜欢“用户+ OK”,但没有一件事... 2似有东西: - 如果我打开套接字SSH服务器的FTP服务器,我总是没有问题的“你好”回应。但是在telnet中,有90%的连接回应我这样一个奇怪的问候:“ÿýÿýÿûÿû”,为什么?
- 当我向用户发送,没有发生,只有unrocognized事件从为handleEvent ...
当你这样做会发生什么?你有没有确认192.168.1.4(你为什么要硬编码?)正在监听端口23? – 2012-04-28 23:44:35
192.168.1.4正在侦听端口23(telnet)。我可以通过终端与它联系。我对地址进行了硬编码,以确保错误不是来自条目。没有发生我这样做的时候,我以为我会在日志中看到的东西,但没有:/ – 2012-04-29 00:01:39
仍然在黑,找不到NSStream良好的配置,并且可以不说话/有来自服务器的响应: – 2012-04-29 23:34:04