2013-02-16 6 views
0

C# 응용 프로그램에서 iOS 앱으로 문자열을 보내는데 문제가 있습니다. C#에서 소켓을 사용하여 데이터를 SocketTest로 보내려고했지만 Socktest의 소켓을 사용하여 데이터를 iOS 앱에 보냈습니다. 문제는 C#에서 iOS로 소켓을 사용하여 데이터를 보내려고 할 때입니다 ... 연결하고 연결을 끊지 만 메시지를 보내지 않습니다 (또는 내 IOS가 읽지 않습니다 ...)C#에서 iOS 앱으로 소켓 보내기

To 내가 사용하고 C#에서 소켓을 사용하여 데이터를 보내

-(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 ]; 
    } 
} 
:

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 라이브러리를 사용하고 iOS에서 그것을 받기 위해 (나는이 게시 할 관련 코드라고 생각합니다)

아무도 도와 줄 수 있습니까? 아마도 잘못된 방식으로 데이터를 보냈을 것입니까? ASCII 이외의 다른 인코딩도 시도했지만 성공하지는 못했습니다.

+0

명확히하십시오. 소켓을 보낼 수 없습니다. 소켓을 통해 * 데이터를 보낼 수 있습니다. – EJP

+0

네, 죄송합니다! 소켓을 통해 데이터를 보내려고합니다. 프로그램 SocketTest는 C#에서 보내지는 데이터를 소켓을 통해 보내지 만 iOS 앱은 보내지 않습니다. 그러나 iOS 응용 프로그램은 SocketTest와 함께 전송 된 소켓에서 데이터를받습니다. 데이터를 보내고 내 IOS가 데이터를받습니다 ... 질문은 데이터가 iOS 앱에서 읽을 수 없거나 iOS 앱이 내 C# 앱을 통해 전송 된 데이터를 제대로 처리하지 못하고 데이터가 제대로 전송되지 않고, 그것을 제대로 작동시키는 방법을 안다 ... SocketTest가 C#으로부터받을 수 있고 문제없이 iOS에 보낼 수 있기 때문에 이상하다 ... – user1782638

답변

0

나는 그것을 할 수 있었다! 모든 것이 순조롭게 진행되고있는 것처럼 보이지만 하나의 세부 사항을 잊어 버렸습니다. iOS 측에서는 보내지 않은 CRLF 데이터를 기대하고있었습니다! 나는 그것을 보내기 전에 인코딩하는 문자열에 "\ r \ n"을 추가하여 간단히 고쳤습니다. :)