2012-04-03 5 views
1

현재 클라이언트 서버 아키텍처를 사용하는 응용 프로그램을 작성 중입니다.C# 서버와의 Java android 클라이언트 통신

클라이언트는 Java android 응용 프로그램입니다. 서버는 C# 응용 프로그램입니다.

클라이언트는 서버에서 데이터를 가져 오지만 경우에 따라 일부 데이터를 C# 서버에도 전송합니다.

서버가 클라이언트를 전달해야하는 데이터는 데이터 구조 (XML 형식 일 수 있음)의 목록입니다. 파일과 같은 이진 데이터도 있습니다.

클라이언트와 서버가 무선 네트워크를 통해 통신하고 있습니다.

속도와 확장 성을 ... 시스템의 설계에 내 최상위 우선 순위

나 자신을 서버를 쓰기뿐만 아니라 클라이언트해야합니다. 나는 통신을 위해 소켓을 사용할 것이다.

Java 클라이언트와 C# 서버간에 데이터를 교환하는 데 사용해야하는 프로토콜 형식에 대한 조언이 필요합니다.

자바와 C#에서 비슷한 데이터 구조 (쓸데없는 것 같습니다)를 작성하고 직렬화해야합니까 ??

또는 xml을 교환해야합니까 ??

나는 는 기본적으로 클라이언트와 서버에서 명령

이 데이터로 할 수있다 전달이 주제에 나에게 알려주십시오 데이터로 응답이있을 것이다 아직 무엇을 할 수있는 가장 좋은 방법은 .. 확실하지 않다 wifi를 통해 몇 개의 대형 공연장이므로 속도가 매우 중요합니다.

+0

SO 대답이 너무 넓습니다. –

+0

아키텍처/디자인 수준에서 해결해야 할 문제입니다. 나는 기술에 관해 특정 적이라고 생각한다. – Ahmed

답변

0

글쎄, 항상 JSON이 있습니다. 양쪽에서 잘 지원되어야하며 서버가 생성하고 클라이언트가 소비하기 쉽습니다. 당신의 대역폭 문제에 도움이되는지 확신하지 못합니다 ...

+0

결국 나는 이것을 위해 json을 선택해야했고 잘 작동했다. – Ahmed

0

WCF이 적합 할 수도 있다고 생각합니다. WCF은 비누를 사용하므로 Java 구현이 잘 작동합니다. WCF도 김이 지원되므로 Java가 스트리밍 프로토콜을 지원하는지 잘 모르겠지만 대용량 파일을 전송할 수 있습니다.

성능면에서 프로토콜이 아닌 장치의 속도에 따라 제한 될 것입니다.

0

당신이 클라이언트와 서버 사이에 코드를 공유하려는 경우 그것은 아마 MonoDroid를 조사 가치가있을 것입니다 (그리고 직렬화/역 직렬화는 의미가있는 경우).

건물을 잘 모르기 때문에 계속하기 전에 REST를 읽어 보시기 바랍니다. 다양한 클라이언트가 쉽게 사용할 수있는 멋진 API를 만드는 방법에 대한 유용한 정보를 제공해야합니다.

관련 문제