問題タブ [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.
cocoa - 1つのTCPソケットから別のTCPソケットに一度に32768バイト以上を送信します
やあみんな、この質問がまだ出されているかどうかはわかりませんが、次の状況を想像してみてください。
2つのTCPソケット(2つで開いてNSSocketPort
リッスンしてNSFileHandle
いる)があり、それらの間にいくつかを送信したいと思いNSData
ます。
NSData
32768バイトを超える長さのインスタンスを送信するまではすべて問題ありません。このバイト数を超えると転送されません。だからここに私の質問があります:
1)Cocoaが一度に32768バイト以上を送信できないのはなぜですか?
2)回避策を講じる必要がありますか?
3)はいの場合、データを分割しますが、どのように分割しますか?そして、他のソケットは、すべてのデータがいつ送信されたかをどのように知るのでしょうか?
ちなみに、この単一NSData
インスタンスを送信した後、両方のソケットを再度閉じる必要があります。
objective-c - OS X: NSRunLoop でソケット読み取りイベントを監視する方法は?
私はココアアプリを書いています。アプリケーションにはソケットがあり、ソケットが読み取り可能になるたびに、ソケットからデータを読み取り、データを処理し、それに応じてユーザー インターフェイスを更新したいと考えています。読み取りイベント チェックをメイン ループに統合したい。つまり、ソケットをメイン ループに接続し、ソケットが読み取り可能になるたびにメイン ループがコールバックを呼び出すようにしたい。
テスト アプリケーションを作成しましたが、何らかの理由で動作しません。
アプリは localhost ポート 1234 でリッスンすることになっており、誰かがサーバーに接続したりサーバーにデータを送信したりするたびに、アプリはコンソールに "Haiz" を出力することになっています。ただし、アプリはまったく何もしません。ソケットが作成され、ポート 1234 に telnet できますが、アプリはコンソールに何も出力しません。
私は何を間違っていますか?
iphone - NSFileHandle & NSSocketPort によるネットワーク通信
Xcodeプログラミング用のNSFileHandleおよびNSSocketPortとのネットワーク通信のスクリプトが必要です...
または、PC 上のソケットベースのプログラムと通信するために NSSocketPort を使用する方法を教えてください。
ありがとう、
iphone - iOS で NSNetService の適切なポートを見つけるには?
iPhone コンポーネントと Mac コンポーネントの 2 つのコンポーネントでアプリを作成しています。彼らはボンジュールを介して互いに通信することになっています。Mac 側で次のコードを使用して、サービスのポートを見つけます。
このコードを iPhone 側で使用して、シミュレーターでアプリを実行することもできます。接続は正常に機能します。しかし、実際の iPhone でこのコードを実行しようとすると、NSSocketPort が iPhone で使用できないことがわかりました。ポート 9876 でサービスを開始しようとすると、Mac アプリに接続しようとすると接続拒否エラーが表示されます。では、NSSocketPort を使用せずに使用するポートを見つけるにはどうすればよいでしょうか?
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 で何をすべきかを調査し続けます。
objective-c - NSSocketPort ポートは一方向にしか機能しません
を使用して、同じコンピューター上の 2 つのアプリケーション間の接続を作成しようとしていますが、NSSocketPort
一方向にしか機能していないようです。NSMutableDictionary
を作成して として設定するサーバーがありますrootObject
。rootProxy
クライアントは、サーバーが作成した辞書を読み取り、辞書を取得します。しかし、クライアントに追加のキー/値セットを辞書に追加して、辞書をrootObject
再度設定してもらいたいと思います。しかし、サーバーは、クライアントが設定した後に設定された最後の値/キーを受信していないようです。
サーバ:
これは、サーバーが値を読み取る方法です。
クライアント:
クライアントは問題なくself.data
受信しますが、クライアントが設定し"serverSet : Value"
た後にサーバーに を読み取らせると、サーバーはではなく値を持つ辞書を取得します。[self.conn rootProxy]
"clientSet : Value"
serverSet
clientSet
私は以下のようにデリゲートメッセージに答えています:
rootObject
値を追加してサーバーに返すことはできませんか? どうやってやるの?