asyncsocket サンプルを出発点として使用して、iPhone での WLAN 通信について学習します。
Mac 上でサンプル サーバーを起動し、ポート 0 を開きます。Mac 上で実行されているテスト クライアントでデータを書き込むことができるため、これは機能します。
iPhoneでは、「ストリームが接続されました」がYESを返すので、なんとか接続できたと思います。
次に、syncsocket でデータを送信したいと思います: (完全なコードを含む編集バージョン)
import "InterfaceTestAppDelegate.h"
import "InterfaceTestViewController.h"
import "AsyncSocket.h"
import "SyncSocket.h"
@implementation InterfaceTestAppDelegate
@synthesize window;
@synthesize viewController;
(void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)remoteHost port:(UInt16)remotePort { NSLog(@"Socket is connected!");
NSLog(@"Remote Address: %@:%hu", remoteHost, remotePort);
NSString *localHost = [sock localHost]; UInt16 localPort = [sock localPort];
NSLog(@"Local Address: %@:%hu", localHost, localPort); }
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"application:didFinishLaunchingWithOptions:");
/* asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];
NSError *err = nil; if (![asyncSocket connectToHost: @"192.168.0.30" onPort: 1234 error: &err]) { NSLog(@"Error connecting: %@", err); } NSData *data = [@"testxyz" dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"trace 1"); [asyncSocket writeData:data withTimeout:10 tag:0]; NSLog(@"trace 2");
*/ syncSocket = [[SyncSocket alloc] initWithTimeout: 10]; syncSocket.nsLog = YES; if (![syncSocket connectToHost: @"192.168.0.30" onPort: 12345]) { NSLog(@"Error connecting syncSocket:"); } NSData *data = [@"testxyz" dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"syncSocket trace 1"); [syncSocket writeData:data]; NSLog(@"syncSocket trace 2");
[ウィンドウ addSubview:viewController.view]; [ウィンドウ makeKeyAndVisible]; はいを返します。}
データを送信し続けることはなく、writeData は常にブロックされます。IP 192.168.0.30 は私の Mac の IP です。上記で提案したように、ポート12345を使用しました。
しかし、受信するために Mac で何をしなければならないのかよくわかりません??
ご覧のとおり、実際に syncsocket を使用すると、ブロックされます。
asyncSocket も試してみたところ、asyncsocket クラスで次のメッセージが表示されました: writeStream Can NOT Accept Bytes
Mac を正しくセットアップしていない可能性があります。つまり、テストするために Mac で実行する必要があるアプリは何ですか? 多くの感謝!