簡単で、速いソケットはC .ネットコア



Cの角とソケットでの作業は本当に別のライブラリと多くの方法から選択するために圧倒的なことができます.
たとえば、TcpClient、NetworkStream、TCPListenerクラスを扱う必要があります.しかし、異なる目的で、それぞれのクラスの中で、同じ目標を達成するために異なる方法があります.
それで、あなたはインターネットで、そして、公式ドキュメンテーションであなたがソケットで働く必要があるたびに検索を終えます、しかし、あなたが見つけた多くの解決のどれがより正確で、完全に非同期で、生産準備ができているか、より更新されたオプションであるかについて、あなたはわかりません.

あなたの問題への解決


SockNetはC . Chrnライブラリである(. NET Standard 2.0).NETコアで、ソケットサーバやクライアントを作成することができます.
クライアントとサーバが互いに接続されている単純な例で動作するようにしましょう.
クライアント
これはサーバアドレスを非同期に接続するソケットクライアントを作成し、接続した後に非同期にデータを送受信します.
  var client = new SocketClient("127.0.0.1", 80);

  if (await client.Connect())
  {
      await client.Send("Am I cool?");
      var recData = await client.ReceiveBytes();
  }
そして、それはクライアントのためのすべて!
サーバー
最初の手順は、サーバーを初期化して、具体的なポートを聞き、サーバーからクライアントが読み取られる方法を設定します.このメソッドの' setreaderbufferbytes ( 1024 )'では、それぞれの接続で1024バイトを読みますが、より高度な読み込みタイプを設定できます.
  var server = new SocketServer();
  server.InitializeSocketServer("127.0.0.1", 80);
  server.SetReaderBufferBytes(1024);
  server.StartListening();
開始と終了の区切り文字で読んだり、正確なバイト数を受け取るなどの他のタイプの読書は、documentation :
それが初期化されたので、サーバーを走らせましょう!
  if(server.IsNewData())
  {
      var data = server.GetData();
      // Do whatever you want with data
      Task.Run(() => DoSomething(data, server));
  }
ここで、ソケットは新しいデータが到着するまで聞きます、そして、それが起こるとき、あなたは複数のユーザーを聞いているために別々の糸で処理されるためにそれを送ることができます.
クライアントにデータを送信する場合は、次のようにします.
server.ResponseToClient(data.key, "this is cool!");
そして、それはすべてです!完全に機能的で堅牢なソケットクライアントとサーバーは、わずか数分とコードの行で行われます.
この例のソースコードを表示できますhere .
図書館をダウンロードするにはnuget パッケージ$ dotnet add package SockNet読んでいただきありがとうございます、そして、私は本当にこのライブラリを参考にすることができます!