TCPのようなものをお勧めします。 BSD(Mac OS XとiPhoneはどちらもBSD)用のこのソフトウェアを書いているので、BSD Cソケット、またはObjective-Cラッパーを使用することができます。クライアントの良いライブラリの1つはCocoaAsyncSocketです。私は個人的には、SocketKitと呼ばれるTCPネットワーキング用の軽量のObjective-Cソケットクラスを作成しました。このライブラリの使い方は次のようなものです:
// open a connection
SKTCPSocket * socket = [[SKTCPSocket alloc] initWithRemoteHost:@"SERVER_IP" port:SERVER_PORT];
// write data
[socket writeData:someData];
// read data
NSData * someData = [socket readData:4];
// close the socket
[socket close];
[socket release];
をサーバーの観点から、あなたはSKTCPSocketServer
クラスを使用してポートをリッスンすることができます:TCPソケットを使用してもちろん
SKTCPSocket * aSocket = nil;
SKTCPSocketServer * server = [[SKTCPSocketServer alloc] initListeningOnPort:1337];
@try {
[server listen];
while ((aSocket = (SKTCPSocket *)[server acceptConnection]) != nil) {
// do something with aSocket
[aSocket close];
}
} @catch (NSException * e) {
NSLog(@"Exception : %@", e);
}
[server stopServer];
[server release];
は、独自のネットワークプロトコルを書く意味します。簡単な例は、4バイトの長さのフィールドと、それに続くNSDictionaryのデータ、またはその性質のものを送信することです。これにより、非常に基本的な分散オブジェクトシステムに似た何かを達成することができます。
最後の数日間、この質問を死に任せているわけではありません。忙しいばかりで、このプロジェクトに戻っていない。情報をありがとう私はCocoaAsyncSocketとSocketKitの両方を見ていきますが、これは私が探しているようです。 – Kris
CocoaAsyncSocketは私が必要としていたことが判明しました。イベントが発生したときに接続されたソケットにデータを書き込むのに少し問題があります...しかし、今は接続時に最初に読み込みをしていますので、ドキュメントに記載されていないものがあると確信しています。再度、感謝します! – Kris