2013-02-16 1 views
0

У меня возникли проблемы с отправкой строки из моего приложения C# в мое приложение iOS. Я попытался отправить данные, используя сокет из C# в SocketTest, и он получает, я отправил данные с помощью сокета из Socktest в мое приложение iOS, и все идет хорошо! Проблема в том, что я пытаюсь отправить данные с помощью сокета с C# на iOS ... Он подключается и отключается, но не отправляет сообщение (или мой iOS не читает его ...)Отправить сокет из C# в приложение iOS

To отправить данные, используя сокет в C# Я использую:

Socket soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
System.Net.IPAddress ipAdd = System.Net.IPAddress.Parse("192.168.0.10"); 
System.Net.IPEndPoint remoteEP = new IPEndPoint(ipAdd, 2525); 
soc.Connect(remoteEP); 
byte[] byData = System.Text.Encoding.ASCII.GetBytes("TESTESTTES"); 
soc.Send(byData); 
soc.Disconnect(false); 

И получить его прошивку я использую библиотеку AsyncSocket (я думаю, что это соответствующий код на сообщение):

-(void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port 
{ 
    [self logInfo:FORMAT(@"Accepted client %@:%hu", host, port)]; 
    NSString *welcomeMsg = @"Welcome to the AsyncSocket Echo Server\r\n"; 
    NSData *welcomeData = [welcomeMsg dataUsingEncoding:NSUTF8StringEncoding]; 
    [sock writeData:welcomeData withTimeout:-1 tag:WELCOME_MSG]; 
    [sock readDataToData:[AsyncSocket CRLFData] withTimeout:READ_TIMEOUT tag:0]; 
} 

- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag 
{ 
    if(tag == ECHO_MSG) 
    { 
    [sock readDataToData:[AsyncSocket CRLFData] withTimeout:READ_TIMEOUT tag:0 ]; 
    } 
} 

Может ли кто-нибудь мне помочь? Возможно, я отправляю данные не так? Я также пробовал другие кодировки помимо ASCII, но не добился успеха.

+0

Просьба уточнить. Вы не можете отправлять сокеты. Вы можете отправлять данные * через * сокет. – EJP

+0

Да, извините! Я пытаюсь отправить данные через сокет ... Программа SocketTest получает данные, отправленные с C# через сокет, но не мое приложение iOS. Но мое приложение iOS получает данные из сокета, отправленного с SocketTest ... Поэтому я знаю, данные отправляются и что мой iOS получает данные ... Вопрос в том, что данные не отправляются должным образом для чтения в приложении iOS или приложение iOS неправильно обрабатывает данные, отправленные через мое приложение C#, и я не знаю, я знаю, как заставить его работать правильно ... Странно, так как SocketTest может получать с C# и отправлять в iOS без проблем ... – user1782638

ответ

0

Мне удалось это сделать! Кажется, что все прошло гладко, но я забыл одну деталь: на стороне iOS я ожидал, что некоторые данные CRLF я не отправлял! Я скорректировал это просто, добавив «\ r \ n» в строку, которую я кодирую перед отправкой. :)