1

ソケットを介してiPhoneとC#サーバー間で通信したいのですが、cocoaasynsocketsを使用してLAN経由でiPhoneからC Sharpサーバーにソケットを作成しようとすると、サーバーにソケットが作成されません。(whatispmyip.com)にある127.0.0.1 / 192.168.2.102(local)/ IPのような別のIPを与えてみましたが、ゲインがありませんでした。

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

- (IBAction)connect:(id)sender{
GCDAsyncSocket *socket;
socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *err = nil;

if (![socket connectToHost:@"192.168.2.102" onPort:52523 error:&err]) // Asynchronous!
{
    NSLog(@error : %@"", err);
}

}


- (void)socket:(GCDAsyncSocket *)sender didConnectToHost:(NSString *)host port:(UInt16)port
{
NSLog(@"connected");
}

これが私のcシャープサーバーコードです

TcpListener _tcpListerner;

    public void startingServer() {

       // IPAddress ipad = Dns.Resolve("localhost").AddressList[0];

        IPAddress ipad = IPAddress.Parse("192.168.2.102");
         _tcpListerner = new TcpListener(ipad, 52523);


         _tcpListerner.Start();

        Console.WriteLine("The local End point is  :" +_tcpListerner.LocalEndpoint);
        Console.WriteLine("Waiting for a connection.....");


        Thread thread = new Thread(acceptClients);
        thread.Start();

    }

    void acceptClients()
    {


        Socket s = _tcpListerner.AcceptSocket();
        Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);


        byte[] b = new byte[100];
        int k = s.Receive(b);

        char cc = ' ';
        string test = null;
        Console.WriteLine("Recieved...");
        for (int i = 0; i < k - 1; i++)
        {
            Console.Write(Convert.ToChar(b[i]));
            cc = Convert.ToChar(b[i]);
            test += cc.ToString();
        }

不足しているもの、どのIPを指定する必要があるか、またはサーバー側またはiphone(クライアント側)にネットワークからソケットを受け入れる/作成するための設定がいくつかあります

4

1 に答える 1

1

サーバーで使用して、すべてのマシンアドレスIPAddress.Anyをリッスンします。クライアント側では、接続するサーバーのLANアドレスを使用します。

于 2012-07-22T00:38:10.650 に答える