2010-05-05 5 views
3

나는 C#에서 두 개의 프로그램을 만들었고 소켓을 통해 간단한 문자열을 보냈습니다. 이 순간에도 문제가 없지만 가까운 장래에 소켓과 결국 파일의 객체와 같은 더 복잡한 항목을 보내야합니다.C#에서 소켓 아래로 정보 보내기

이 작업을 수행하기위한 어떤 단계가 필요합니까? 버퍼는 소켓/스트림에 어떤 용도로 사용됩니까? 내가 약간 애매한 경우 사과드립니다.

답변

1

개체를 보내는 경우 실제로하는 일과 상대방에서 해당 개체를 어떻게 사용할 것인지 계획해야합니다. 모든 속성을 직렬화해야합니다. 이 객체에 많은 양의 데이터를 저장하려는 경우 이진 직렬화를 대신 사용할 수 있습니다.

또한, 여기에 게시 가이드 라인을보고 : MSDN Serialization Guidelines 당신이 객체를 보낼하려는 경우

, 당신은 닷넷 리모팅 옵션이나 WCF 서비스 (해당되는 경우) 중 하나를보고 할 수 있습니다. 나 자신의 소켓 핸들러를 굴려서 복잡한 작업에 사용하는 것은 많은 시간과 고통을 요구합니다. 특히 전에하지 않았다면 요.

+0

누구나 답변 해 주셔서 감사합니다. TheCodeMonk에서 제공하는 링크가 훌륭했지만 매우 도움이되었습니다. 건배. – markyoung1984

0

당신이 처리 할 수있는 한 가지 방법은 객체를 XML로 직렬화하고, 소켓을 보내고, 직렬화를 해제하는 것입니다. 전에 이런 식으로 했어. 그러나 저는 (.NET에 대해 처음 접했을 때) JavaScriptSerializer에 대해 배웠습니다.이 과정을 통해 훨씬 쉽게 처리 할 수 ​​있습니다.

0

개체를 serialize해야합니다. [Serializable] 특성으로 표시하고 일부 serializer를 사용하십시오. 예제는 here입니다.

0

모든 통신 상황의 첫 번째 문제는 전송하는 모든 항목이 통신 채널을 초과 할 수 있도록 serialize 및 serialize 할 수 있어야한다는 점을 고려하는 것입니다. 다음으로는 통신에 대기 시간 (즉각적이지 않음)과 실패 할 수 있다는 사실을 고려해야합니다.

이 후에는 프로토콜과 기술은 위의에서 고려 될 수 있습니다.

1

많은 옵션이 있습니다 가능하게 생각하지만, 기본적으로는 소켓을 통해 이동하는 형식으로 데이터를에는 직렬화 할.

주목할 가치가있는 것은 xml serialization입니다.

관련 문제