2

Appleの低レベル ファイル管理プログラミング トピックを勉強しています。NSFileHandle セクションでは、次のように述べています。

NSFileHandle のスコープはファイルに限定されません。これは、ソケット、パイプ、およびデバイスによって実装されたものなどの通信チャネルに対して読み書きできる唯一の Foundation オブジェクトを提供します。

それはいいです!NSFileManager を介してソケットに話しかけることができます。ソケットはそのデータを Web サーバーに転送し、リモートで直接ファイルをいじりますか?

誰かがこれで何ができるかを理解しやすい例を挙げてもらえますか?

  • 「ソケット」と通信するときは?
  • 「パイプ」と通信するときは?
  • 「デバイス」と通信するときは?

注: ソケット、パイプ、デバイスについては何も知りません。また、デバイスとは、iPhone 自体を意味するものではないと確信しています。私はネットワークのことには詳しくありません。でも、それを学びたい!!これらが何であるかを簡単に説明していただけますか?

4

1 に答える 1

7

ソケットは、ネットワーク経由で通信するために使用する資産です。アプリケーションがネットワーク通信を行う場合、宛先ホストに接続する必要があります。これには asocketが使用されます。ほとんどの場合、TCP/IP ネットワーク プロトコルが使用されます。これには、接続先のIPアドレスまたはホスト名、およびいわゆるTCPポートを指定する必要があります。これは、ターゲットホストで実行されているサービスの一意の識別です。たとえば、HTTPには80が使用されます。接続が確立されると、ファイル ハンドルと同様の方法でソケットを使用し、単純にデータを書き込みまたは読み取ります。これが通常のネットワーキングの仕組みです。

Pipe は Unix に由来する機能です。Mac と iPhone は Unix システムに基づいていることを思い出してください。これは、2 つのプロセス間の通信の (難解ですが、依然として一般的な) 方法です。プログラミングの観点からは、ファイル ハンドルに似ています。2 つのプロセスがパイプ経由で接続されている場合、それらはパイプに読み書きして相互に通信できます。

デバイスは、デバイスの抽象化です。ハードドライブに直接アクセスしたいと想像してください。Unix システムで行う方法は、特別なファイルを開くことです。実際にはファイルではありませんが、ファイルシステム上に「デバイス」として作成されます。Mac のディレクトリ「/dev/」を確認してください。利用可能なデバイスが含まれています。ハードドライブの場合、最初のパーティションは「/dev/disk0s1」で、「/dev/disk0」を見つけることができます。これらの「デバイス」は、カーネルにロードされたデバイス ドライバーを表します。カーネル拡張機能 (ドライバーなど) は、ユーザー空間プログラムとの通信を可能にするデバイスを提供できます。

于 2010-10-23T12:39:46.920 に答える