// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

Similar documents
TestDesign for Web

HOW DO I WebBrowser コントロールで HTML5 を 使用するには ここでは以下の手順で説明します Video 要素を使用する Silverlight と JavaScript の間でやり取りする Canvas 要素を使用する Video 要素を使用する 1. Visual Stu

Microsoft Word - プリンター登録_Windows XP Professional.doc

Microsoft Word - Win-Outlook.docx

Microsoft PowerPoint - Skype for business プラン1.pptx

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作


1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

Android プログラム ガイド

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

ユーザ デバイス プロファイルの ファイル形式

おらんかにクライアント操作マニュアル

Java講座

REX-C56EX FAX送信 第5.0版

テキストファイルの入出力1

Microsoft PowerPoint - メールソフト設定方法マニュアル_ver.1.5.ppt

9 WEB監視

IsBOX-3100/3150 インストールガイド

プリンタドライバインストールガイド <OPS645>-Windows Vista(32bit 版 )/ Windows 7(32bit 版 )/ Windows 8(32bit 版 )/ Windows 8.1(32bit 版 )- プリンタドライバインストールガイド <OPS645> Window

Microsoft Word JA_revH.doc

1. Microsoft Loopback Adapter のインストール 1) ノートパソコンにおいて そのパソコンの管理者アカウントによりログオンします 2) [ スタート ] > コントロールパネルを開きます 3) 表示方法 : カテゴリの場合には ハードウェアとサウンド > デバイスマネージ

プログラミング基礎I(再)

登録手順 2 アカウントの登録 追加 インターネットアカウント画面が表示されます [ 追加 (A)] [ メール (M)] の順にクリックします 登録手順 3 表示名の設定 インターネット接続ウィザードが表示されます [ 表示名 (D)] に名前を入力します 入力が完了したら [ 次へ (N)] を

Android Layout SDK プログラミング マニュアル

ClientManager ユーザズマニュアル

TFTP serverの実装

PrintBarrierV3L50(V ) アップデート手順書 第 1.01 版 株式会社富士通アドバンストエンジニアリング 平成 25 年 3 月 7 日 1

Oracle トレーニング オンデマンド Oracle ラーニング サブスクリプション演習環境接続ガイド (OUVPN と NoMachine / NX Client 3.5) 2017 年 9 月版 日本オラクル株式会社オラクルユニバーシティ 目次 1. 演習環境の予約 2.NoMachine の

音声認識サーバのインストールと設定

SMB送信機能

RsMulti の取扱説明 「RS232C で直接接続する(LAN を使用しない場合)」

Microsoft Word - バーチャルクラス(Blackboard)ログイン方法ガイド.docx

プロセス間通信

Microsoft Word - ManagerIPChange.doc

事前準備マニュアル

XAサーバーのSQL再インストール手順書

VPN 接続の設定

Troubleshooting SSH connections with Reflection X

操作パネルのないプリンターでは IP アドレスの設定をプリンターだけでは行えません PC とプリンターをクロスケーブルで繋ぐ または PC とプリンターの間にハブをひとつ置いてネットワークケーブルで繋いで IP アドレスの設定変更を行うことができます 1. 接続します (1) 下記のいずれかの方法で

Windows 7ファイル送信方法 SMB編

目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機

Microsoft Word - Qsync設定の手引き.docx

導入編設定編設計手順書の構成 設定を行う前にお読みください 1 ケーブルモデムの設置 ケーブルモデムの概要と接続についてご説明いたします 設定手順書です 設定の際にお読みください 2 TCP/IP の設定 ネットワークの設定についてご説明いたします 3 インターネットオプションの設定 インターネット

Shareresearchオンラインマニュアル

SMB送信機能

2/25 1 クライアントソフトウェアのインストールと設定 (1) ハードディスクインストール 1 クライアントソフトウェアのダウンロードと実行 2 インストールの開始 [ 次へ ] を押下します

Microsoft Word PXシリーズプリンタドライバインストール説明書(Win8・10-32・64bit)

【注意事項】RXファミリ 組み込み用TCP/IP M3S-T4-Tiny

はじめに

サーバー証明書 インストール手順-Microsoft IIS 8.x

メール設定

アクセス許可を設定する画面が開いたら グループ名またはユーザー名 欄から Everyone を選択し Everyone のアクセス許可 欄で フルコントロール の 許可 にチェックを付け このフォルダへのアクセスを許可します 設定後は OK を押して終了します 2. フォルダへのアクセス許可を設定す

動作環境設定

2. Save をクリックします 3. System Options - Network - TCP/IP - Advanced を開き Primary DNS server と Secondary DNS Server に AXIS ネットワークカメラ / ビデオエンコーダが参照できる DNS サ

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

人工知能入門

Hyper-V 仮想マシンの設定

ご注意 1) 本書の内容 およびプログラムの一部 または全部を当社に無断で転載 複製することは禁止されております 2) 本書 およびプログラムに関して将来予告なしに変更することがあります 3) プログラムの機能向上のため 本書の内容と実際の画面 操作が異なってしまう可能性があります この場合には 実

Outlook Thick Client Quick Start Guide

Web ブラウザー編 ログイン フォルダーの作成 文書のアップロード 文書のダウンロード フォルダー / 文書の削除 文書公開 文書受け取り チェックアウト チェックイン ( ロック解除 ) ログアウト STEP 1 : ログイン 1 ご利用開始のお知らせ メールに記載されている URL から オン

RADIUS サーバを使用して NT のパスワード期限切れ機能をサポートするための Cisco VPN 3000 シリーズ コンセントレータの設定

FutureWeb3サーバー移管マニュアル

GHS混合物分類判定システムインストールマニュアル

プロッタドライバインストールガイド <OPS628>-Windows 2000/XP- プロッタドライバインストールガイド <OPS628> Windows 2000/XP 環境 本説明書は グラフテックのホームページよりドライバをダウンロードして コンピュータにインストール する手順を説明したもの

SMB送信機能

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

SiTCP ユーティリティユーザガイド 2014 年 6 月 18 日 0.73 版 Bee Beans Technologies 1

intra-mart Accel Platform

目次 メールの基本設定内容 2 メールの設定方法 Windows Vista / Windows 7 (Windows Live Mail) Windows 8 / Windows 10 (Mozilla Thunderbird) 3 5 Windows (Outlook 2016) メ

10 完了 をクリック 13 このサーバーは認証が必要 をチェックして 設定 をクリック Windows メール Windows Vista に標準のメールソフト Windows メール の設定方法を説明します 1 スタート から 電子メール Windows メール をクリック 11 続いて設定ファ

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

iStorage ソフトウェア VMware vCenter Plug-in インストールガイド

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

Transcription:

HOW DO I ソケットで通信を行うには ここでは以下の手順で説明します ソケットクライアントを作成するデータを送信するデータを受信するソケットクライアントを使用する ソケットクライアントを作成する 1. このコンテンツのサポートファイルの Start フォルダから "UDPClient" プロジェクトを開きます 2. クライアントを動作させるため コンピューターで簡易 TCP/IP サービスを有効にする必要があります 以下の手順を実行します a. コントロールパネルで [ プログラムと機能 ] を開きます b. [Windows の機能の有効化または無効化 ] をクリックします c. [Windows の機能 ] ダイアログで [ 簡易 TCP/IP サービス ] チェックボックスをオンにして機能を有効にし [OK] をクリックします d. この手順を実行するには ローカルコンピューターの Administrators グループまたは Network Configuration Operators グループのメンバーとしてログオンする必要があります e. コンピューターの [ サービス ] リストで "Simple TCP/IP Services" サービスが開始されていることを確認します 開始されていない場合はサービスを手動で開始します サービスの開始方法の詳細については サービスの開始方法を構成する を参照してください 3. メニューから [ プロジェクト ] [ クラスの追加 ] を選択し SocketClient という名前を付けます 4. SocketClient.cs で System.Net.Sockets System.Threading System.Text の名前空間を追加し SocketClient クラスに以下のメンバー変数を定義します using System.Net.Sockets; using System.Threading; using System.Text;

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new ManualResetEvent(false); // 各非同期呼び出しのタイムアウトをミリ秒で定義する このタイムアウト期間内に // 応答を受信しなかった場合 呼び出しが中止される const int TIMEOUT_MILLISECONDS = 5000; // 非同期ソケットメソッドで使用するデータバッファーの最大サイズ const int MAX_BUFFER_SIZE = 2048; 5. 以下のパラメーターを使って socket 変数を初期化するコンストラクターを追加します public SocketClient() // AddressFamily.InterNetwork - ソケットは IP version 4 アドレス指定方式を // 使用してアドレスを解決する // SocketType.Dgram - データグラム ( メッセージ ) パケットをサポートするソケット // PrototcolType.Udp - ユーザーデータグラムプロトコル (UDP) socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 6. socket を閉じる Close メソッドを追加します public void Close() socket.close(); データを送信する 1. SocketClient.cs で Send メソッドを追加します 文字列を返すようにし パラメーター として servername portnumber data を受け入れます

public string Send(string servername, int portnumber, string data) 2. Send メソッドで string 型の変数 response を定義し 既定値として "Operation Timeout" を設定します string response = "Operation Timeout"; 3. ソケットが null でないかどうか確認し 以下のようにデータを送信します if (socket!= null) // SocketAsyncEventArgs コンテキストオブジェクトを作成する SocketAsyncEventArgs socketeventarg = new SocketAsyncEventArgs(); // コンテキストオブジェクトのプロパティを設定する socketeventarg.remoteendpoint = new DnsEndPoint(serverName, portnumber); // Completed イベントのインラインイベントハンドラー // 注 : メソッドを自己完結させるため このイベントハンドラーはインラインで実装される socketeventarg.completed += new EventHandler<SocketAsyncEventArgs>(delegate(object s, SocketAsyncEventArgs e) response = e.socketerror.tostring(); // UI スレッドのブロックを解除する clientdone.set(); ); // 送信するデータをバッファーに追加する byte[] payload = Encoding.UTF8.GetBytes(data); socketeventarg.setbuffer(payload, 0, payload.length); // イベントの状態をシグナルなしに設定し スレッドのブロックを発生させる clientdone.reset(); // ソケットを使用して非同期の送信要求を行う socket.sendtoasync(socketeventarg); // TIMEOUT_MILLISECONDS の最大秒数まで UI スレッドをブロックする // この時間内に応答がなければ 処理を先に進める clientdone.waitone(timeout_milliseconds);

else response = "Socket is not initialized"; 4. 応答を返します return response; データを受信する 1. SocketClient.cs で Receive メソッドを追加します 文字列を返すようにし パラメータ ーとして portnumber を受け入れます public string Receive(int portnumber) 2. Receive メソッドで string 型の変数 response を定義し 既定値として "Operation Timeout" を設定します string response = "Operation Timeout"; 3. ソケットが null でないかどうか確認し 以下のようにデータを受信します if (socket!= null) // SocketAsyncEventArgs コンテキストオブジェクトを作成する SocketAsyncEventArgs socketeventarg = new SocketAsyncEventArgs(); socketeventarg.remoteendpoint = new IPEndPoint(IPAddress.Any, portnumber); // データを受信するためのバッファーを設定する socketeventarg.setbuffer(new Byte[MAX_BUFFER_SIZE], 0, MAX_BUFFER_SIZE); // Completed イベントのインラインイベントハンドラー // 注 : メソッドを自己完結させるため このイベントハンドラーはインラインで実装される socketeventarg.completed += new EventHandler<SocketAsyncEventArgs>(delegate(object s, SocketAsyncEventArgs e) if (e.socketerror == SocketError.Success)

// バッファーからデータを取得する response = Encoding.UTF8.GetString(e.Buffer, e.offset, e.bytestransferred); response = response.trim('\0'); else response = e.socketerror.tostring(); ); clientdone.set(); // イベントの状態をシグナルなしに設定し スレッドのブロックを発生させる clientdone.reset(); // ソケットを使用して非同期の受信要求を行う socket.receivefromasync(socketeventarg); // TIMEOUT_MILLISECONDS の最大秒数まで UI スレッドをブロックする // この時間内に応答がなければ 処理を先に進める clientdone.waitone(timeout_milliseconds); else response = "Socket is not initialized"; 4. 応答を返します return response; ソケットクライアントを使用する 1. MainPage.xaml.cs の btnecho の Click イベントハンドラーで ClearLog の後に client という名前の新しい SocketClient 変数を作成します SocketClient client = new SocketClient(); 2. 以下のように エコーされるメッセージを送信します Log(String.Format(">> Sending '0' to server...", txtinput.text)); string result = client.send(txtremotehost.text, ECHO_PORT, txtinput.text); 3. 以下のように 応答を受信してクライアントを閉じます

Log(">> Requesting receive..."); result = client.receive(echo_port); client.close(); 1. MainPage.xaml.cs の btngetquote の Click イベントハンドラーで client という名前の新 しい SocketClient 変数を ClearLog の後に作成します SocketClient client = new SocketClient(); 2. 以下のように 今日の名言 (quote of the day) の要求を送信します // UDP では 着信する UDP メッセージごとにメッセージが送信されるため " ダミー " メッセージを送信して // 応答を求める メッセージは空にできないので 以下のメッセージは空白文字 1 つで構成されている Log(">> Requesting quote"); string result = client.send(txtremotehost.text, QOTD_PORT, " "); 3. 以下のように 応答を受信してクライアントを閉じます // " 今日の名言 " (QOTD) を返すサーバーからの応答を受信する Log(">> Requesting receive..."); result = client.receive(qotd_port); client.close(); 4. プロジェクトを実行します 5. [Host Name] に利用しているコンピュータ名または現在割り当てられている IP アドレスを入力します 6. エコーするテキストを追加して [Echo] ボタンをタップします 応答が出力テキストボックスに返されることを確認します 7. [Get Quote of the Day] ボタンをタップします 応答が出力テキストボックスに返されることを確認します インターネットおよびその他のサービスとのほぼリアルタイムな通信を可能にする 新しいソケット機能を紹介しました

参考ビデオ : How Do I: Communicate with Sockets in Windows Phone Mango? http://msdn.microsoft.com/en-us/hh329472