考えられる解決策の 1 つは、テキスト ファイルを一連の文字列またはバイト配列として読み込んで送信することです。バイト配列アプローチは、送信中に圧縮できるため、最も簡潔で効率的かもしれません。ネットワーク ライブラリ 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("testFile.txt");
TCPConnection.GetConnection(new ConnectionInfo("127.0.0.1", 10000)).SendObject("TextFileData", 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[]>("TextFileData", (packetHeader, connection, incomingData) =>
{
Console.WriteLine("Received TextFileData");
File.WriteAllBytes("testFile.txt", incomingData);
});
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」であることも確認してください。これは、サーバーとクライアントの両方を同じマシンで実行する場合に機能するはずです。詳細については、入門またはクライアント サーバー アプリケーションの作成方法に関する記事もご覧ください。