首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C中的NSSocketPort连接

Objective-C中的NSSocketPort连接
EN

Stack Overflow用户
提问于 2011-12-21 17:34:45
回答 2查看 1.5K关注 0票数 0

我正在尝试使用此代码建立套接字连接

代码语言:javascript
复制
//Server code
- (void)startServer{
    sockPort = [[NSSocketPort alloc] initWithTCPPort:9786];
    NSConnection *theConnection;
    theConnection = [[NSConnection alloc] initWithReceivePort:sockPort sendPort:nil];
    theConnection=[[NSConnection alloc] init];
    [theConnection setRootObject:self];
    [theConnection registerName:@"Server Connection"];
}

//Client Code
-(void)startClient{
     NSConnection *conn=[NSConnection connectionWithReceivePort:nil sendPort:sockPort];
     NSLog(@"Socket descriptor=%d",[sockPort socket]);
}

控制台

代码语言:javascript
复制
Socket descriptor=-1

为什么套接字描述符显示为-1?

EN

回答 2

Stack Overflow用户

发布于 2012-02-23 02:48:27

发布的代码没有特别的意义-但是如果我们假设代码的客户端更传统一些,看起来像这样:

代码语言:javascript
复制
- (void)startClient
{
    NSSocketPort *sockPort = [[NSSocketPort alloc] initRemoteWithTCPPort: 1234
                                                                    host: @"hostname"];
    NSConnection  *connection = [NSConnection  connectionWithReceivePort: nil 
                                                                sendPort: sockPort];
    ....

这里sockPort上的套接字应该是-1,因为它不代表该进程中的套接字,而是这样的套接字应该连接到的目的地。

更有趣的是connection对象上的receivePort和sendPort属性。

票数 1
EN

Stack Overflow用户

发布于 2011-12-21 19:57:23

你有一个双倍的配额。第二个应该删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8587665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档