Mac OS Xネットワークプログラミング

Mac OS Xでのネットワークプログラミングを勉強しながら、少しずつ公開していくコーナー。

コードを書く前の準備

まず、gccを使える状態にしないといけません。 Mac OS Xを普通にインストールしただけでは開発環境は入りません。 Xcodeを含むMac OS X開発環境はOS DVDなどに入っています。

次に、エディタが必要になります。 標準開発環境であるXcodeを利用して書くことができます。 一方で、UNIXやLinuxなどで一般的なエディタであるmule、emacs、xemacsなどを利用することも可能です。 個人的にはviが好きです。

Cocoa

ファイル単体をそのままコピペしてgccでコンパイルできるCUIとして書いているので多少特殊な書き方をしている気がします。 GUIを使う場合はNSRunLoopではなく、NSApplicationMainを使ったりするのでご注意下さい。

各サンプルコードをコンパイルするには、各コードを「.m」がつくファイルとして保存し、「gcc -framework Cocoa filename.m」というコマンドを入力してください。 「filename.m」の部分は、保存したファイル名です。

NSURLConnection (同期)

NSURLConnection (非同期) [1]

NSURLDownload [1]

ローカルについているIPアドレスを全て表示 (NSHost)

Core Foundation

CF系APIを使った方法です。

各サンプルコードをコンパイルするには、各コードを「.m」がつくファイルとして保存し、「gcc -framework Cocoa filename.m」というコマンドを入力してください。 「filename.m」の部分は、保存したファイル名です。

HTTPクライアント(Core Foundation)

HTTPクライアント:HTTP Status Lineを表示(Core Foundation)

HTTPクライアント:HTTP Status Codeを表示(Core Foundation)

CFSocketでマルチキャスト送受信

CFSocketでIPv6マルチキャスト送信

CFSocketでIPv6マルチキャスト受信

BSDソケットを使う方法

C言語でBSDソケット(POSIXソケット)を使う方法です。 C言語APIを直接使うよりCocoaを使う方が一般的であるため、setsockoptなどの生APIに近い処理が必要なときや、速度を求めたりBSDやLinux用のコードを移植するときなどに利用する事になると思われます。

BSDソケットを使う方法index

関連情報

インターネット入門(基礎技術)
インターネットの仕組みを初心者向けに説明しています。
Linuxネットワークプログラミング
Linuxでネットワークプログラミングを行いたい方はこちらをご覧ください。
Windowsネットワークプログラミング
WinSockを使ってWindows上で通信プログラムを書きたい方はこちらをご覧ください。
Perlネットワークプログラミング
Perlによるネットワークプログラミング解説です。
Rubyネットワークプログラミング
Rubyによるネットワークプログラミング解説です。