我想在iOS上的 localhost 上设置TCP客户端 . 我正在使用GCDAsyncSocket但我收到NSPOSIXErrorDomain错误:
-
代码= 61 "Connection refused"或
-
代码= 49 "Can't assign requested address"
执行:
asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
uint aPort = (arc4random() % 1000) + 1024;
NSError *err = nil;
if (![asyncSocket connectToHost:@"localhost" onPort:aPort withTimeout:-1 error:&err])
{
NSLog(@"Client setup error on port:%u %@", aPort, err);
}
代表:
-(void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err
{
NSLog(@"Client socketDidDisconnect");
if (err) {
NSLog(@"ClientRelay socket error: %@", err);
}
}
这可以在localhost上完成吗?
1 回答
这可以在localhost上完成 . 但是你对端口有一些误解 .
端口 - 要 Build 与服务器的连接,您需要其IP地址和端口号 . 端口号是IP协议确定将哪个数据包发送到哪个应用程序的方式 . 因此使用随机端口将不起作用 .
使用GCDAsycSocket连接到localhost
创建GCDAsycSocket的新实例
使用host参数
@"localhost"
调用- (BOOL)connectToHost:(NSString *)host onPort:(uint16_t)port error:(NSError **)errPtr;
以开始接受连接 . 对于端口,请使用大于6000的数字 .创建一个新实例GCDAsycSocket
调用
- (BOOL)connectToHost:(NSString *)host onPort:(uint16_t)port error:(NSError **)errPtr;
,主机为@"localhost"
,端口为您在步骤2中选择的端口 .你应该可以连接 .