問題タブ [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 - 1つのTCPソケットから別のTCPソケットに一度に32768バイト以上を送信します

やあみんな、この質問がまだ出されているかどうかはわかりませんが、次の状況を想像してみてください。

2つのTCPソケット(2つで開いてNSSocketPortリッスンしてNSFileHandleいる)があり、それらの間にいくつかを送信したいと思いNSDataます。

NSData32768バイトを超える長さのインスタンスを送信するまではすべて問題ありません。このバイト数を超えると転送されません。だからここに私の質問があります:

1)Cocoaが一度に32768バイト以上を送信できないのはなぜですか?
2)回避策を講じる必要がありますか?
3)はいの場合、データを分割しますが、どのように分割しますか?そして、他のソケットは、すべてのデータがいつ送信されたかをどのように知るのでしょうか?

ちなみに、この単一NSDataインスタンスを送信した後、両方のソケットを再度閉じる必要があります。

0 投票する
2 に答える
2121 参照

objective-c - OS X: NSRunLoop でソケット読み取りイベントを監視する方法は?

私はココアアプリを書いています。アプリケーションにはソケットがあり、ソケットが読み取り可能になるたびに、ソケットからデータを読み取り、データを処理し、それに応じてユーザー インターフェイスを更新したいと考えています。読み取りイベント チェックをメイン ループに統合したい。つまり、ソケットをメイン ループに接続し、ソケットが読み取り可能になるたびにメイン ループがコールバックを呼び出すようにしたい。

テスト アプリケーションを作成しましたが、何らかの理由で動作しません。

アプリは localhost ポート 1234 でリッスンすることになっており、誰かがサーバーに接続したりサーバーにデータを送信したりするたびに、アプリはコンソールに "Haiz" を出力することになっています。ただし、アプリはまったく何もしません。ソケットが作成され、ポート 1234 に telnet できますが、アプリはコンソールに何も出力しません。

私は何を間違っていますか?

0 投票する
1 に答える
505 参照

iphone - NSFileHandle & NSSocketPort によるネットワーク通信

Xcodeプログラミング用のNSFileHandleおよびNSSocketPortとのネットワーク通信のスクリプトが必要です...

または、PC 上のソケットベースのプログラムと通信するために NSSocketPort を使用する方法を教えてください。

ありがとう、

0 投票する
2 に答える
2391 参照

iphone - iOS で NSNetService の適切なポートを見つけるには?

iPhone コンポーネントと Mac コンポーネントの 2 つのコンポーネントでアプリを作成しています。彼らはボンジュールを介して互いに通信することになっています。Mac 側で次のコードを使用して、サービスのポートを見つけます。

このコードを iPhone 側で使用して、シミュレーターでアプリを実行することもできます。接続は正常に機能します。しかし、実際の iPhone でこのコードを実行しようとすると、NSSocketPort が iPhone で使用できないことがわかりました。ポート 9876 でサービスを開始しようとすると、Mac アプリに接続しようとすると接続拒否エラーが表示されます。では、NSSocketPort を使用せずに使用するポートを見つけるにはどうすればよいでしょうか?

0 投票する
1 に答える
196 参照

macos - NSSocketPortNameServer portForName:host: Mavericks で遅い

Mavericks[NSSocketPortNameServer portForName:host:]では、localhost の解決に約 5 秒かかります。以前ははるかに高速で、約 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 秒のタイムアウトがあることがわかります。このタイムアウトは、Mavericks の前に 0 秒に設定されていたと思われます。すべてのユーザーにこのタイムアウトをリセットするように依頼することはできないため、このタイムアウトを回避するために Mavericks で何をすべきかを調査し続けます。

0 投票する
1 に答える
298 参照

objective-c - NSSocketPort ポートは一方向にしか機能しません

を使用して、同じコンピューター上の 2 つのアプリケーション間の接続を作成しようとしていますが、NSSocketPort一方向にしか機能していないようです。NSMutableDictionaryを作成して として設定するサーバーがありますrootObjectrootProxyクライアントは、サーバーが作成した辞書を読み取り、辞書を取得します。しかし、クライアントに追加のキー/値セットを辞書に追加して、辞書をrootObject再度設定してもらいたいと思います。しかし、サーバーは、クライアントが設定した後に設定された最後の値/キーを受信して​​いないようです。

サーバ:

これは、サーバーが値を読み取る方法です。

クライアント:

クライアントは問題なくself.data受信しますが、クライアントが設定し"serverSet : Value"た後にサーバーに を読み取らせると、サーバーはではなく値を持つ辞書を取得します。[self.conn rootProxy]"clientSet : Value"serverSetclientSet

私は以下のようにデリゲートメッセージに答えています:

rootObject値を追加してサーバーに返すことはできませんか? どうやってやるの?