問題タブ [gcdasyncsocket]

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 投票する
1 に答える
4536 参照

ios - Can not read data from server using GCDAsyncSocket

I tried to connect to the server and send some information to the server(like username, password..), and the server send me back the ID (string type). The problem is I can not get the ID. Could anyone help me? I am beginner in IOS coding. Thanks.

Here is the codes:

  1. After I click the button, it will call my own function to get serverIP which is a string and Port which is a int.
  2. Then that function will call this function to connect the server:

    /li>
0 投票する
0 に答える
3512 参照

objective-c - GCDAsyncSocketが接続されていないか、失敗したことを知らせるエラーが発生します

GCDAsyncSocketクラスを使用してデバイスに接続しようとしていますが、問題が発生しています。接続されているかどうかは通知されないようですが、接続に失敗したことも通知されません。

これが私の.hファイルです

これが私の.mファイルです

ビューコントローラからこのクラスのconnectメソッドを呼び出しますが、コンソールに出力されるのは次のとおりです。

注:私はすべてのデリゲートを実装しGCDAsyncSocket、を介してコンソールにすべて書き込みNSLogます。

「ソケットがポート上のホストに接続しました」というメッセージまたは「ソケットがエラーで切断されました」というメッセージが表示されない理由について何か考えはありますか?

0 投票する
0 に答える
367 参照

iphone - GCDAsyncsocket で xmpp ファイル転送を読み取る方法

xmpp フレームワークと TURNSocket クラスを使用しています。Socks5 接続、GCDasyncsocket が確立したら、他のクライアントが送信しているデータを受信する必要があります。

readdatattodata のすべてのサンプルは、CrLF のようなターミネータを使用して動作しています。送信されている完全なファイル データを読み取るにはどうすればよいですか。

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

iphone - GCDAsyncSocket - 読み取りストリームが完了しない

特に「大きな」ファイル(5〜10 mb)で、しばらくGCDAsyncSocket(MRC / iOS5.1)で遊んでいます。残念ながら、ストリームの最後に数バイトあるだけで、読み取りストリームが完了しないことがあります (スタックするなど)。はdidReadPartialDataOfLength:私に情報を提供するのをやめ、didReadDataはまったく解雇されません。

これが私のコードの一部です(書き込み/読み取りの両方の例で、ホストとクライアント間の接続が確立されています)

書き込み

読む

これが私が間違っていることを確認するのに十分なコードであることを願っています。または、これが大量のデータの書き込み/読み取りの悪い習慣である可能性があります。

0 投票する
3 に答える
5407 参照

ios - iOSのGCDAsyncUdpSocketにマルチキャストデータグラムがありません

ネットワーク上に、UDPを介して非常に小さなファイルをマルチキャストしているデバイスがあります。私が開発しているiOSアプリは、これらのパケットの読み取りを担当しており、GCDAsyncUdpSocketを使用して読み取ることを選択しました。ファイルは0.5秒ごとに送信されますが、私はそれほど頻繁には受信していません(約3〜10秒ごとにのみ受信しています)。

デバイスに問題があるのではないかと考え、Wiresharkでトラフィックの監視を開始しました。これは、Wiresharkで「監視モード」を有効にするまでアプリに表示されていたものを反映しているように見えました。有効にすると、すべてのUDPパケットがキャプチャされていました。さらに、iOSシミュレーターは、私が開発しているMacとNICを共有しているため、欠落しているすべてのパケットの受信を開始しました。

iOSデバイスまたは不足しているパケットを受信できるようにする何かが不足している場合に「監視モード」を有効にする方法はありますか?また、GCDAsyncUdpSocketにreadStreamメソッドがあることもわかります。おそらく、beginReceivingの代わりにこれを使用する必要がありますか?その場合、Objective-Cでストリームを設定する方法はわかりませんが。

これが私のテストコードです。


将来ここを見に来る人のための解決策:

ilmiacsの回答に基づいて、ターゲットのiOSデバイスにpingを実行することで、欠落しているパケットの数を大幅に減らすことができました。Macを使用して、これをターミナルで実行しました-

MacでiOSデバイスにpingを実行して実行しているので、AppleのiOS pingの例を調べて、デバイス自体にpingを実行して独自のワイヤレスアダプター(127.0.0.1)を刺激できるかどうかを確認します。

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

objective-c - iOS GCDAsyncSocket writeData 原因 EXC_BAD_ACCESS

再生ボタンをタップすると、Xcode で「Thread 6 GCDAsyncSocket 0 objc_msgSend」というメッセージが表示されてクラッシュします。うまくいく場合もありますが、ほとんどの場合、このエラーが発生しました。どんな手掛かり?

スナップショット: http://i.imgur.com/G2Nv4.png

以下はコード行です。

ありがとう!

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

objective-c - GCDAsyncSocket のバグ

プログラムをコンパイルしようとすると、いくつかのエラーが発生しました。何が起こったのかわかりません。iPad でコンパイルしたいのです。iPad に TCP サーバーを構築して、クライアントからデータを読み取りたいのです。私はIOSプログラミングの初心者です。手伝ってくれてありがとう!サイモン エラー

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

objective-c - GCDAsyncUdpSocketは、IPv6アドレスに送信するとすぐに閉じます

Bonjourによってアドバタイズされている別のデバイス上のサーバーにUDP経由で接続しています。このコードが実行されているiOSデバイスとサーバーの両方がwifiネットワーク上にある場合、bonjourサービスはdhcpサーバーから渡される192.168.0.xxxアドレスに解決されるため、正常に機能します。ただし、Bluetoothによってアドバタイズされると、サービスが169.254.xxx.xxx(IPv4)に解決される場合があります。その場合、サービスは正常に機能します。ただし、fe80 :: xxxx:xxxx:xxxx:xxxx(IPv6)に解決される場合があります。その場合、ソケットは接続します(udpSocket:didConnectToAddressコールバックを受信します)が、データを送信しようとするとすぐに閉じます(udpSocketDidClose:withErrorsendを呼び出すとすぐにコールバックを受信します)。

私のudpSocket:didConnectToAddressメソッドはsendを呼び出し、他のコールバックは基本的にこの時点では単なる情報(NSLog)です。これはに渡されるNSErrorudpSocketDidClose:withErrorです:

役に立たない。

これを修正する際に、IPv4を強制するのではなくIPv6で動作させたいと思います...IPv4を強制することは私には壊れやすいようです。

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

objective-c - ビュー コントローラー (ストーリーボード) 間で開いているソケットを渡す方法

ストーリーボード付きの Xcode iOS 6。既存のプログラムにチャット機能を追加しています。GCDAsyncSocket を使用しています。1 つのビューコントローラー内にいると、すべてが完全に機能します。多くのビューコントローラーから開いているソケットにアクセスする必要があります。また、これらのビュー コントローラーから GCDASYNCSOCKET にアクセスする必要があります。

誰かが私を助けるかもしれないサンプルコードを持っていますか?

perpareforsegue を使用すると、開いているソケットを渡すことができますか? 私が見たシングルトンは、GCDASYNCSOCKET のような既存のクラスを考慮していないようで、機能していないようです。

いくつかの実例を教えてください。

Singleton.m

Singleton.h

このコード(シングルトン)でエラーが発生します

別のビューコントローラーからアクセスしようとすると、エラーが発生します (SocketConnection から 'GCDAsyncSocket" _strong' に割り当てられている互換性のないポインター型)

0 投票する
0 に答える
421 参照

ios - ノード JS udp ブロードキャストが読み取られない -- ノード js と iOS

これが私のコードです(ノードのjavascript):

これは、ノードを実行している私のコンピューターのifconfigです(私が考える唯一の関連事項-間違っている場合は修正してください):

udp ブロードキャストは iOS アプリで受信されず、パケット インスペクターからも見えません。何が問題なの?! iOS アプリは GCDAsyncUdpSocket フレームワークを使用します。

何が起こるか: ノードブロードキャストから「didReceiveData」が呼び出されません。ただし、独自のメッセージを送信するときに呼び出されます。

一方、iOS アプリはブロードキャストに成功し、パケット インスペクターでそのパケットをインターセプトできます。ただし、同じパケット インスペクターは、ノードから発信されたはずのパケットを表示しません。

ノードで何が間違っていますか? ノードで何をしているのかが問題だと思います。