2

誰かが私が抱えている小さな問題で私を助けることができるかどうか疑問に思っていました.

TCP ソケット経由で送信される xml ファイルを受け取ります。サーバーとして機能し、tcp ソケットを介して xml ファイルを送信できる小さなアプリケーションを作成しようとしています。次に、この xml ドキュメントを受信して​​処理する最初のアプリケーションのテストを開始できます。

私はGoogleを試してみましたが、これで行き止まりに陥り続けています。

4

1 に答える 1

2

考えられる解決策の 1 つは、xml を一連の文字列またはバイト配列としてロードして送信することです。バイト配列アプローチが最も簡潔かもしれません。ネットワーク ライブラリ networkcomms.netを使用すると、送信を呼び出すアプリケーションは次のようになります。

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();
        }
    }
}

そしてサーバー:

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();
        }
    }
}

「NetworkCommsDotNet を使用する」参照に追加できるように、Web サイトから NetworkCommsDotNet DLL をダウンロードする必要があることは明らかです。また、クライアントの例のサーバー IP アドレスが現在「127.0.0.1」であることも確認してください。これは、サーバーとクライアントの両方を同じマシンで実行する場合に機能するはずです。詳細については、入門またはクライアント サーバー アプリケーションの作成方法に関する記事もご覧ください。

于 2013-02-06T00:35:54.787 に答える