ホームページ バックエンド開発 C#.Net チュートリアル C# (ソケット) 同期ソケットのコード例

C# (ソケット) 同期ソケットのコード例

Dec 22, 2016 pm 01:27 PM

同期クライアント ソケットの例

次のサンプル プログラムは、サーバーに接続するクライアントを作成します。クライアントは同期ソケットを使用して生成されるため、サーバーが応答を返すまでクライアント アプリケーションの実行は一時停止されます。アプリケーションは文字列をサーバーに送信し、サーバーから返された文字列をコンソールに表示します。

C#
using System.Net;
using System.Net.Socket;
public static void StartClient() {
//受信データ用のデータ バッファー。 byte[] bytes = new byte[1024];
// リモート デバイスに接続します。
try {
// この例では、ローカル コンピューターのポート 11000 を使用します。 = Dns.Resolve(Dns.GetHostName())
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint RemoteEP = new IPEndPoint(ipAddress,11000);
Socket sender = new Socket を作成します。 (AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );
// ソケットをリモート エンドポイントに接続します。
try {
sender.Connect(remoteEP); {0}",
sender.RemoteEndPoint.ToString());
// データ文字列をバイト配列にエンコードします。
byte[] msg = Encoding.ASCII.GetBytes("This is a test");
// ソケット経由でデータを送信します。
int bytesSent = sender.Send(msg);
int bytesRec = sender.Receive(bytes); test = {0}",
Encoding.ASCII.GetString(bytes,0,bytesRec));
// ソケットを解放します。
sender.Shutdown(SocketShutdown. Both);
sender.Close();
} catch ( ArgumentNullException ane) {
Console.WriteLine("ArgumentNullException : {0}",ane.ToString());
} catch (SocketException se) {
Console.WriteLine("SocketException : {0}",se.ToString() );
} catch (例外 e) {
Console.WriteLine("予期しない例外: {0}", e.ToString());
}
} catch (例外 e) {
Console.WriteLine( e.ToString() ); 要求されたサーバー。サーバーは同期ソケット
を使用して生成されるため、クライアントからの接続を待機している間、サーバー アプリケーションの実行がハングします。アプリケーションはクライアントから文字列を受信し、その文字列をコンソールに表示し、その文字列をクライアントにエコーバックします。クライアントからの文字列には、メッセージの終わりを示す文字列「」が含まれている必要があります。






C#
using System.Net;
using System.Text;
public class SynchronousSocketListener;からのデータclient.
public static string data = null;
public static void StartListening() {
// 受信データのデータ バッファー
byte[] bytes = new Byte[1024];
// ソケットのローカル エンドポイントを確立します。
// Dns.GetHostName は、アプリケーションを実行している
// ホストの名前を返します。
IPAddress ipAddress = ipHostInfo.AddressList[0];IPEndPoint localEndPoint = 新しい IPEndPoint(ipAddress, 11000); 
// TCP/IP ソケットを作成します。 
ソケットリスナー = 新しいソケット(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp); 
// ソケットをローカル エンドポイントにバインドし、
// 受信接続をリッスンします。 
試してください {
listener.Bind(localEndPoint); 
listener.Listen(10); 
// 接続のリッスンを開始します。 
while (true) {
Console.WriteLine("接続を待機しています..."); 
// 着信接続を待機している間、プログラムは一時停止されます。 
ソケットハンドラー=listener.Accept(); 
data = null; 
// 受信接続を処理する必要があります。 
while (true) {
バイト = 新しい バイト[1024]; 
int bytesRec = handler.Receive(bytes); 
data += Encoding.ASCII.GetString(bytes,0,bytesRec); 
if (data.IndexOf("") > -1) {
break; 
}
}
// コンソールにデータを表示します。 
Console.WriteLine( "受信したテキスト : {0}", data); 
// データをクライアントにエコーバックします。 
byte[] msg = Encoding.ASCII.GetBytes(data); 
handler.Send(msg); 
handler.Shutdown(SocketShutdown. Both); 
handler.Close(); 
}
} catch (Exception e) {
Console.WriteLine(e.ToString()); 
}
Console.WriteLine("n続行するには Enter を押してください..."); 
Console.Read(); 
}
public static int Main(String[] args) {
StartListening(); 
0を返す; 
}
}

以上は c#(Socket) 同步套接字代例の内容、その他の相关内容请关注PHP中文网(www.php.cn)!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C# シリアル化 C# シリアル化 Sep 03, 2024 pm 03:30 PM

C# シリアル化のガイド。ここでは、C# シリアル化オブジェクトの導入、手順、作業、例についてそれぞれ説明します。

C# を使用した Active Directory C# を使用した Active Directory Sep 03, 2024 pm 03:33 PM

C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# の乱数ジェネレーター C# の乱数ジェネレーター Sep 03, 2024 pm 03:34 PM

C# の乱数ジェネレーターのガイド。ここでは、乱数ジェネレーターの仕組み、擬似乱数の概念、安全な数値について説明します。

C# データ グリッド ビュー C# データ グリッド ビュー Sep 03, 2024 pm 03:32 PM

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C# の階乗 C# の階乗 Sep 03, 2024 pm 03:34 PM

C# の Factorial のガイド。ここでは、C# での階乗の概要について、さまざまな例とコード実装とともに説明します。

C# のパターン C# のパターン Sep 03, 2024 pm 03:33 PM

C# のパターンのガイド。ここでは、C# のパターンの概要と上位 3 種類について、その例とコード実装とともに説明します。

C# の素数 C# の素数 Sep 03, 2024 pm 03:35 PM

C# の素数ガイド。ここでは、C# における素数の導入と例を、コードの実装とともに説明します。

See all articles