2011-04-20 9 views
1

찾은 모든 예제는 네트워크를 통해 text/string 데이터 만 보내고 있습니다. 다른 유형의 객체 (ArrayLists 등)를 보내는 방법을 알아 냈습니다. 이제 서버의 클라이언트에서 보낸 명령을 처리하는 방법을 찾으려고합니다. 내가해야하는 클라이언트에서 : 데이터베이스 에서 추가 ä "학생"나는와 클라이언트 측에서 프로토콜을 작성하는 경우 는 등tcp/ip를 사용하여 C#에서 클라이언트에서 서버로 명령 보내기

때문에 데이터베이스의 모든 학생들을 얻을 데이터베이스에 학생을 삭제 메소드 "processCommand"가끔 클라이언트의 요청에 따라 다른 수의 매개 변수가 있습니다 (학생을 추가 할 때 학생 개체를 보내야합니다). (데이터베이스에서 데이터를 가져올 때 어떤 것도 보낼 필요가 없습니다. 매개 변수); 또한 다른 유형의 객체를 반환해야합니다. 어떻게해야합니까? 대단히 감사합니다.

+0

WCF를 확인하십시오 : http://msdn.microsoft.com/WCF - 클라이언트 - 서버 통신을 지원하고 다른 사람들과 비교하여 TCP/IP 프로토콜을 사용합니다 ... –

+0

원할 경우 직렬화를 시도 할 수 있습니다. 물건을 보내라. – Gabriel

답변

3

@marc_s가 제안했습니다. 바퀴를 재발견 할 이유가 없습니다. tcpBinding과 함께 WCF를 사용하십시오.

직접 작성해야하는 경우 일종의 직렬화를 사용해야합니다. TCP는 스트림 기반이므로 머리글을 첨부해야하며 모든 것이 동일한 것으로 도착한다고 보장 할 수 없습니다. Receive.

나는 이런 식으로 할 것 :

  1. BinaryFormatter를 사용하여 바이트 버퍼에 개체를 직렬화합니다.
  2. 바이트 버퍼에 버전 (int) 및 바이트 수를 포함하는 헤더를 보냅니다 (int)
  3. 바이트 버퍼를 보냅니다.
관련 문제