2012-07-21 35 views
1

我想通過套接字在iPhone和C#服務器之間進行通信, 當我嘗試使用cocoaasynsockets通過局域網從iPhone創建套接字到我的C Sharp服務器,但它不會在我的服務器上創建任何套接字。我試着給不同的IP像127.0.0.1/192.168.2.102(local)/IP發現(whatispmyip.com),但沒有收穫,cocoaasynsocket to c sharp服務器

這裏是我的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(客戶端)的一些設置,以便接受/來自網絡

創建套接字
+0

不清楚究竟是什麼問題。嘗試重新陳述你的問題。 – 2012-07-21 22:35:12

+0

@NikolaiNFetissov嗨,我編輯我的問題,請重新檢查 – 2012-07-21 23:33:51

回答

1

在服務器上使用IPAddress.Any來收聽全部機器地址。 在客戶端使用您要連接的服務器的LAN地址。

+0

謝謝你的隊友它的工作,讓我擺脫了一個非常糟糕的情況真的很感謝 – 2012-07-24 07:55:47