2013-02-04 2 views
1

누군가 내가 가지고있는 작은 문제로 나를 도울 수 있는지 궁금합니다.XML over TCP 소켓

TCP 소켓을 통해 전송 될 XML 파일을 받게 될 것입니다. 서버 역할을하고 TCP 소켓을 통해 xml 파일을 보낼 수있는 작은 응용 프로그램을 만들려고합니다. 그런 다음이 xml 문서를 받고 처리 할 초기 응용 프로그램을 테스트 할 수 있습니다.

Google을 사용해 본 결과, 계속해서 막 다른 골목에 섰습니다.

+4

무엇을 시도 했습니까? 어디에서 붙잡습니까? "Socket"및 "TcpClient"는 여기에서 유용 할 수 있습니다. TCP를 통해 전송할 때 XML에 대한 특별한 것은 없습니다. –

+0

TCP 연결을 통해 문자열을 성공적으로 보냈습니다. xml 데이터 전송에도 동일하게 적용됩니까? 그냥 XML 문서를 문자열로 패킷 보내고 TCP를 통해 보내시겠습니까? xml 문서의 파일 이름은 어떻게 전달됩니까? 시스템이 라이브 일 때 나는 여러 xml 문서를 임의의 시간에 받게 될 것이다. 감사합니다 스투 – user2040454

답변

2

하나의 가능한 해결 방법은 xml을 일련의 문자열 또는 바이트 배열로로드하여 전송하는 것입니다. 당신은 분명히 NetworkCommsDotNet을 다운로드해야합니다

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using NetworkCommsDotNet; 

namespace Server 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      NetworkComms.AppendGlobalIncomingPacketHandler<byte[]>("XMLData", (packetHeader, connection, incomingXMLData) => 
      { 
        Console.WriteLine("Received XMLData"); 
        File.WriteAllBytes("filename.xml", incomingXMLData); 
      }); 

      TCPConnection.StartListening(true); 

      Console.WriteLine("Server ready. Press any key to shutdown server."); 
      Console.ReadKey(true); 
      NetworkComms.Shutdown(); 
     } 
    } 
} 

:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using NetworkCommsDotNet; 

namespace Client 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      byte[] bytesToSend = File.ReadAllBytes("filename.xml"); 
      TCPConnection.GetConnection(new ConnectionInfo("127.0.0.1", 10000)).SendObject("XMLData", bytesToSend); 

      Console.WriteLine("Press any key to exit client."); 
      Console.ReadKey(true); 
      NetworkComms.Shutdown(); 
     } 
    } 
} 

서버 : 바이트 배열의 접근 방식은 다음과 같을 것이다 network library networkcomms.net에게 보내는를 호출하는 응용 프로그램을 사용하여, 가장 간결 수 있습니다 DLL을 사용하여 'NetworkCommsDotNet 사용'참조에 추가 할 수 있습니다. 클라이언트의 서버 IP 주소도 현재 "127.0.0.1"입니다. 동일한 컴퓨터에서 서버와 클라이언트를 모두 실행하는 경우이 옵션이 작동합니다. 자세한 내용은 getting started 또는 how to create a client server application 기사를 확인하십시오.