我希望在iOS上的 localhost 上设置TCP客户端。 我使用 GCDAsyncSocket ,但我收到了NSPOSIXErrorDomain错误:
实现:
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上完成吗?
答案 0 :(得分:0)
这可以在localhost上完成。但是你对端口有一些误解。
端口 - 要建立与服务器的连接,您需要其IP地址和端口号。端口号是IP协议确定将哪个数据包发送到哪个应用程序的方式。因此使用随机端口将不起作用。
使用GCDAsycSocket
连接到localhost- (BOOL)connectToHost:(NSString *)host onPort:(uint16_t)port error:(NSError **)errPtr;
调用@"localhost"
以开始接受连接。对于端口,请使用超过6000的数字。- (BOOL)connectToHost:(NSString *)host onPort:(uint16_t)port error:(NSError **)errPtr;
为主机呼叫@"localhost"
,并将端口作为您在步骤2中选择的端口。