2011-10-21 2 views
2

Monodroid를 사용하여 Android로 서버에 정보를 보내려고합니다. 다음과 같이소켓을 사용하여 MonoDroid로 데이터 전송

코드는 다음과 같습니다

public void sendSomething() 
    { 
     sock = new TcpClient(); 
     sock.Connect(Dns.GetHostAddresses("a.domain.com"), 7777); 

     String d; 
     d = "somedata"; 

     StreamWriter w = new StreamWriter(sock.GetStream()); 
     // StreamReader r = new StreamReader(sock.GetStream()); 

     w.WriteLine(d); 
     w.Flush(); 

     sock.Close(); 
    } 

그것은 내가 윈폼 응용 프로그램에서 동일한 루틴을 실행하면 잘 작동하지만 monodroid에 버튼 클릭에 연결된 경우 (안드로이드 가상 장치에서 실행 - I 서버가 연결을 볼 수는 있지만 데이터가 수신되지 않습니다.

누구에게 이것이 어떨까요?

(수정 코드 수정)

+0

다른 클라이언트 응용 프로그램이 가상 장치에서 작동합니까? 예 : 브라우저에서 기본 웹 페이지에 액세스 할 수 있습니까? 이메일 등 수신? –

+0

안녕하세요, 예. 기기에 내장 된 브라우저로 웹 페이지에 액세스 할 수 있습니다. – Pleng

답변

1

서버 문제 일 수 있습니다. 예 : 다음과 같이 가정 해 봅시다.

) Windows/MS.NET (Mono/Linux 또는 OSX 제외)에서 실행중인 winform 앱.

B) 서버가 너무 Windows 기반이며 ReadLine 서버가 무엇을보고하지 않는 이유를 설명 할 수있는 소켓

다음

쓰기 사이의 NewLine (\n 유닉스)와 읽기 (윈도우 \r\n\)를 읽어 않습니다 읽히고.

서버의 데이터를 읽는 방법을 보여줄 수 있습니까? (질문 편집)

+0

감사합니다. 문제가 해결되었습니다! 변경됨 : d = "somedata"; ~ d = "somedata \ r \ n"; 그리고 지금은 두통이 길어지기 시작했습니다. :) – Pleng

+0

Glad it :-) 윈도우 새 라인과 일치하도록 (또는 'StreamWriter'가'TextWriter'에서 가져 오는)'NewLine' 속성을 설정하거나 서버 애플리케이션에서'StreamReader'를 변경할 수도 있습니다. 둘 다 동일하면 괜찮을 것입니다. – poupou

관련 문제