0

我首先要说我确实在到处寻找和搜索,然后在这里问我正在尝试为 iphone 编写一个简单的应用程序,只需通过 telnet 连接到 IP 和端口,我尝试了所有我对 obj-c 不熟悉的东西(在java 花了我四分钟),我不想使用线程,但我听说 asyncsoket 非常好.. 我不知道为什么,但是当我尝试时:

AsyncSocket * socket = [[AsyncSocket alloc] initwithDelegate:self];
[socket connectToHost:@"localhost" onPort:444 error:&err]

(这是一个可以工作的服务器)它根本没有连接......

我所需要的只是连接到套接字写入和读取数据......
有没有可以用作基础的简单代码示例(无线程,无运行循环)?

4

1 回答 1

0

连接委托.h

#import <Cocoa/Cocoa.h>
#import "AsyncSocket.h"

@class AsyncSocket;
@interface ConnectDelegate: NSObject {
    AsyncSocket *connectSocket;
}
- (void)connect;

@end

连接委托.m

#import "ConnectDelegate.h"
#import "AsyncSocket.h"

@implementation ConnectDelegate

- (id) init;
{
    if( ![super init] )
    return nil;
    return self;
}

- (void)connect
{
    connectSocket  = [[AsyncSocket alloc] initWithDelegate:self];
    connectSocket.delegate = self;

    NSError *error = nil;
    if (![connectSocket connectToHost:@"192.168.1.103" onPort:4000 error:&error]) {
        NSLog(@"Error starting client: %@", error);
        return;
    }
}

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{
    NSLog(@"connected to server");
}
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
    // some relevant code goes here
}
- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag{
}
@end

主文件

int main(int const argc, char * const argv[] ) {
    ConnectDelegate *SocketConnection = [[ConnectDelegate alloc] init];
    [SocketConnection connect];

    // Run runloop
    [[NSRunLoop currentRunLoop] run];

return 0
}
于 2013-07-13T01:33:58.593 回答