问题标签 [nssocketport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1038 浏览

cocoa - 一次从一个 TCP-Socket 向另一个发送超过 32768 个字节

嘿伙计们,我不知道这个问题是否已经被问过,但想象一下以下情况:

我有两个 TCP-Sockets(用两个打开NSSocketPortund 监听NSFileHandle),现在我想NSData在它们之间发送一些。

在我想发送NSData一个长度超过 32768 字节的实例之前,一切都是正确的。超过此数量的字节将不会被传输。所以这是我的问题:

1) 为什么 Cocoa 不能一次发送超过 32768 字节?
2)我必须解决问题吗?
3)如果是,我会拆分数据,但你会怎么做?另一个套接字如何知道所有数据何时发送?

顺便说一句,在发送这个单一NSData实例之后,两个套接字都应该再次关闭。

0 投票
2 回答
2121 浏览

objective-c - OS X:如何使用 NSRunLoop 观察套接字读取事件?

我正在编写一个 Cocoa 应用程序。应用程序中有一个套接字,每当套接字变得可读时,我想从套接字读取数据,处理数据,并相应地更新用户界面。我想在主循环中集成读取事件检查,即我想将套接字附加到主循环并让主循环在该套接字变得可读时调用回调。

我编写了一个测试应用程序,但由于某种原因它不起作用:

该应用程序应该在 localhost 端口 1234 上进行侦听,并且每当有人连接到服务器或向服务器发送数据时,该应用程序应该在控制台上打印“Haiz”。但是,该应用程序根本什么都不做。套接字已创建,我可以远程登录到端口 1234,但该应用程序不会向控制台打印任何内容。

我究竟做错了什么?

0 投票
1 回答
505 浏览

iphone - 使用 NSFileHandle 和 NSSocketPort 进行网络通信

我需要一些与 NSFileHandle 和 NSSocketPort 进行网络通信的脚本来进行 Xcode 编程...

或者,教我如何使用 NSSocketPort 与 pc 上的任何基于套接字的程序进行通信。

谢谢,

0 投票
2 回答
2391 浏览

iphone - 如何在 iOS 上为 NSNetService 找到合适的端口?

我正在制作一个包含两个组件的应用程序,一个 iPhone 组件和一个 Mac 组件。他们应该通过 bonjour 相互交流。我在 Mac 端使用以下代码来查找服务的端口:

我也可以在 iPhone 端使用这段代码,在模拟器中运行应用,连接正常。但是,当我尝试在实际的 iPhone 上运行此代码时,我发现 NSSocketPort 在 iPhone 上不可用。当我尝试使用端口 9876 启动服务时,Mac 应用程序在我尝试连接时显示连接被拒绝错误。那么如何在不使用 NSSocketPort 的情况下找到要使用的端口呢?

0 投票
1 回答
196 浏览

macos - NSSocketPortNameServer portForName:host: 小牛慢

使用 Mavericks[NSSocketPortNameServer portForName:host:]现在需要大约 5 秒来解析 localhost。它过去要快得多,大约 0.01 秒。

我的代码与Apple 的 Introduction to Distributed Objects中的代码相同。

我曾经能够在不到 0.1 秒的时间内启动一个子进程并连接到它。 我的文件管理器运行多个子进程,因此目前在 Mavericks 上已失效。该应用程序没有沙盒化。

我不明白为什么[NSSocketPortNameServer portForName:host:]需要这么长时间。也许我做错了什么。

任何建议非常感谢?


服务器代码

运行大约需要 0.1 秒。


连接到服务器的客户端代码

这在小牛队需要 5 秒。

这在 Mountain Lion 和 Lion 上需要大约 0.1 秒。

我也试过用nil,像这样[[NSSocketPortNameServer sharedInstance] portForName:name host:nil]。它没有任何区别。

如果我使连接无效并尝试再次连接,那么[[NSSocketPortNameServer sharedInstance] portForName:name host:nil]也需要 5 秒。


这可能是什么原因造成的

当我使用 转储 DNS 配置时scutil --dns,我看到本地域有 5 秒超时。我怀疑这个超时时间在小牛队之前被设置为 0 秒。我不能要求所有用户都重置这个超时,所以我会继续调查在 Mavericks 上应该做些什么来避免这个超时。

0 投票
1 回答
298 浏览

objective-c - NSSocketPort 端口只能以一种方式工作

我正在尝试使用 a 在同一台计算机上的两个应用程序之间创建连接NSSocketPort,但它似乎只以一种方式工作。我有一个服务器,它创建 aNSMutableDictionary并将其设置为rootObject. 客户端在服务器创建字典时读取rootProxy并获取字典。但随后我希望客户端向字典添加一个额外的键/值集并将字典设置为rootObject再次。但是在客户端设置之后,服务器似乎没有收到最后一个值/键设置。

服务器:

这是服务器读取值的方式:

客户:

客户端的self.data接收"serverSet : Value"很好,但是当我让服务器读取[self.conn rootProxy]客户端设置后"clientSet : Value"服务器获取的字典时,该字典的serverSet值而不是clientSet.

我正在回答代表消息如下:

我不应该能够添加一个值并将其返回rootObject给服务器吗?我怎样才能做到这一点?

0 投票
0 回答
165 浏览

cocoa - 带有 SSL 的 NSSocketPort

我目前正在编写一个服务器/客户端应用程序,使用NSSocketPort连接到NSFileDescriptor服务器端的事件处理。这工作得很好,服务器和客户端通信没有问题。

但是,我想添加 SSL/TLS 来保护通信。有了一个NSStream我可以设置NSStreamSocketSecurityLevelNegotiatedSSL密钥让流本身处理这种加密,但是是否有类似的功能NSSocketPort,或者我必须实现这个?我已经搜索了文档,但没有找到任何可以让我轻松实现此 SSL/TLS 的内容。

如果我必须自己实现它,那么实现它的最简单方法是什么?的子类NSSocketPort,还是别的什么?我对 OpenSSL 比较熟悉,但是任何指针(不是双关语)当然都非常感谢如何使用 Cocoa 使这项工作体面地工作。