この記事では主に C# ソケットの単純なコンソールのケースを共有します。興味のある方は参照してください
1. ソケット インスタンス オブジェクトをインスタンス化して設定します
。 a. IP アドレスとポートを作成します b. リスニング アドレスをバインドします
2. 接続を監視します
a.メインスレッドがフリーズしないように実行します (スレッドを開始し、パラメーターはオブジェクト型である必要があります)b. ループを使用して接続を待機し、通信を担当するソケット インスタンスを返します c. 返されたソケットインスタンスは、接続されているカスタマー サービスの IP アドレスを取得します
3. カスタマー サービスによって送信されたメッセージを受信しますa. リスニング メソッドで新しいスレッドの実行を開始します
b. ループを使用して、メッセージを送信して呼び出します。メッセージを取得するメソッドは、バイト変数パラメータをコンテナとして渡す必要があります。メソッドの戻り値は int で、取得した有効なバイト数を示します c. 有効なバイト数が 0 の場合は、ループから抜けます d. カスタマー サービスへの返信メッセージを受信します
4 . コンソール プログラム サーバー 終了コードusing System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; namespace ServerSocket { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Socket serverSocket = new Socket(SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Any; IPEndPoint point = new IPEndPoint(ip, 2333); //socket绑定监听地址 serverSocket.Bind(point); Console.WriteLine("Listen Success"); //设置同时连接个数 serverSocket.Listen(10); //利用线程后台执行监听,否则程序会假死 Thread thread = new Thread(Listen); thread.IsBackground = true; thread.Start(serverSocket); Console.Read(); } /// <summary> /// 监听连接 /// </summary> /// <param name="o"></param> static void Listen(object o) { var serverSocket = o as Socket; while (true) { //等待连接并且创建一个负责通讯的socket var send = serverSocket.Accept(); //获取链接的IP地址 var sendIpoint = send.RemoteEndPoint.ToString(); Console.WriteLine($"{sendIpoint}Connection"); //开启一个新线程不停接收消息 Thread thread = new Thread(Recive); thread.IsBackground = true; thread.Start(send); } } /// <summary> /// 接收消息 /// </summary> /// <param name="o"></param> static void Recive(object o) { var send = o as Socket; while (true) { //获取发送过来的消息容器 byte[] buffer = new byte[1024 * 1024 * 2]; var effective = send.Receive(buffer); //有效字节为0则跳过 if (effective == 0) { break; } var str = Encoding.UTF8.GetString(buffer,0, effective); Console.WriteLine(str); var buffers = Encoding.UTF8.GetBytes("Server Return Message"); send.Send(buffers); } } } }
2. クライアント
1. ソケット インスタンス オブジェクトをインスタンス化して接続します
a.
b. サーバー側でリンクを確立します2. サーバーによって送信されたメッセージを受信します
a. ループを使用して、送信されたメッセージを取得しますそして、メッセージを取得するメソッドを呼び出して、バイト変数パラメータをコンテナとして渡します。メソッドの戻り値は int で、取得した有効なバイト数を示します c. 有効なバイト数が 0 の場合、ループから抜けます3. サーバーにメッセージを送信します
a. send(ソケットオブジェクトの)メソッドを呼び出して直接送信します
4. コンソールプログラムのクライアントコード
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace SocketClient
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
//创建实例
Socket socketClient = new Socket(SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse("192.168.0.111");
IPEndPoint point = new IPEndPoint(ip, 2333);
//进行连接
socketClient.Connect(point);
//不停的接收服务器端发送的消息
Thread thread = new Thread(Recive);
thread.IsBackground = true;
thread.Start(socketClient);
//不停的给服务器发送数据
int i = 0;
while (true)
{
i++;
var buffter = Encoding.UTF8.GetBytes($"Test Send Message:{i}");
var temp = socketClient.Send(buffter);
Thread.Sleep(1000);
}
}
/// <summary>
/// 接收消息
/// </summary>
/// <param name="o"></param>
static void Recive(object o)
{
var send = o as Socket;
while (true)
{
//获取发送过来的消息
byte[] buffer = new byte[1024 * 1024 * 2];
var effective = send.Receive(buffer);
if (effective == 0)
{
break;
}
var str = Encoding.UTF8.GetString(buffer, 0, effective);
Console.WriteLine(str);
}
}
}
}
以上がC# ソケットは単純なコンソール ケースを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C#と.NETは、強力な機能と効率的な開発環境を提供します。 1)C#は、CのパワーとJavaのシンプルさを組み合わせた最新のオブジェクト指向プログラミング言語です。 2).NETフレームワークは、複数のプログラミング言語をサポートするアプリケーションを構築および実行するためのプラットフォームです。 3)C#のクラスとオブジェクトは、オブジェクト指向プログラミングの中核です。クラスはデータと動作を定義し、オブジェクトはクラスのインスタンスです。 4).NETのゴミ収集メカニズムは、開発者の作業を簡素化するためにメモリを自動的に管理します。 5)C#および.NETは、同期および非同期プログラミングをサポートする強力なファイル操作関数を提供します。 6)一般的なエラーは、デバッガー、ロギング、例外処理を通じて解決できます。 7)パフォーマンスの最適化とベストプラクティスには、StringBuildの使用が含まれます

.NetFrameworkは、一貫したプログラミングモデルと強力なランタイム環境を提供する、クロス言語のクロスプラットフォーム開発プラットフォームです。 1)メモリとスレッドを管理するCLRとFCLで構成され、FCLは事前に構築された機能を提供します。 2)使用の例には、読み取りファイルとLINQクエリが含まれます。 3)一般的なエラーには、未処理の例外とメモリリークが含まれ、デバッグツールを使用して解決する必要があります。 4)パフォーマンスの最適化は、非同期プログラミングとキャッシュを通じて実現でき、コードの読みやすさと保守性を維持することが重要です。

C#.NETが永続的に魅力的なままである理由には、その優れたパフォーマンス、リッチエコシステム、強力なコミュニティサポート、クロスプラットフォーム開発機能が含まれます。 1)優れたパフォーマンスであり、エンタープライズレベルのアプリケーションとゲーム開発に適しています。 2).NETフレームワークは、さまざまな開発分野をサポートするための幅広いクラスライブラリとツールを提供します。 3)アクティブな開発者コミュニティと豊富な学習リソースがあります。 4).NetCoreは、クロスプラットフォーム開発を実現し、アプリケーションシナリオを拡張します。

C#.NETの設計パターンには、Singletonパターンと依存関係の注入が含まれます。 1.シングルトンモードは、クラスに1つのインスタンスしかないことを保証します。これは、グローバルアクセスポイントが必要なシナリオに適していますが、安全性と虐待の問題をスレッドすることに注意する必要があります。 2。依存関係の噴射により、依存関係を注入することにより、コードの柔軟性とテスト可能性が向上します。多くの場合、コンストラクターの注入に使用されますが、複雑さを高めるために過度の使用を避ける必要があります。

C#.NETは、ゲーム開発、金融サービス、モノのインターネット、クラウドコンピューティングの分野で現代世界で広く使用されています。 1)ゲーム開発では、C#を使用してUnityエンジンを介してプログラムします。 2)金融サービスの分野では、C#.NETが高性能取引システムとデータ分析ツールの開発に使用されます。 3)IoTおよびクラウドコンピューティングに関して、C#.NETはAzure Servicesを通じてサポートを提供して、デバイス制御ロジックとデータ処理を開発します。

.NETFRAMEWORKISWINDOWS-CENTRIC、while.netcore/5/6supportscross-platformdevelopment.1).netframework、2002年以来、isidealforwindowsprimitedincross-platformcapabilities.2).netcore、andtseverutions(andtseverutions(andtseverution)

C#.NET開発者コミュニティは、次のような豊富なリソースとサポートを提供します。1。Microsoftの公式文書、2。StackoverflowやRedditなどのコミュニティフォーラム、3。Githubのオープンソースプロジェクト。これらのリソースは、開発者が基本的な学習から高度なアプリケーションまでプログラミングスキルを向上させるのに役立ちます。

C#.NETの利点には以下が含まれます。1)非同期プログラミングなどの言語機能により、開発が簡素化されます。 2)パフォーマンスと信頼性、JITコンピレーションとゴミ収集メカニズムによる効率の向上。 3)クロスプラットフォームサポート、.NetCoreはアプリケーションシナリオを拡張します。 4)Webからデスクトップ、ゲーム開発までの優れたパフォーマンスを備えた幅広い実用的なアプリケーション。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
