質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

0回答

1878閲覧

c# TCP/IP通信を繰り返しできるようにしたい。

iyokan618

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2019/07/22 13:23

前提・実現したいこと

TCPIP通信でクライアントから文字をサーバーに送ってを繰り返しできるようにしたい。

発生している問題

下記URLに書いてある
「4.Listenを続けるのであれば、再びAcceptTcpClientメソッドで接続を待機します。Listenを終了するのであれば、Stopメソッドを呼び出します。」
とあるがソースコードをどういじればいいかわかりません。
https://dobon.net/vb/dotnet/internet/tcpclientserver.html

該当のソースコード

c#ここに言語を入力

1static void Main(string[] args) 2 { 3 4 //Processオブジェクトを作成 5 System.Diagnostics.Process p = new System.Diagnostics.Process(); 6 7 //ComSpec(cmd.exe)のパスを取得して、FileNameプロパティに指定 8 p.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec"); 9 //出力を読み取れるようにする 10 p.StartInfo.UseShellExecute = false; 11 p.StartInfo.RedirectStandardOutput = true; 12 p.StartInfo.RedirectStandardInput = false; 13 //ウィンドウを表示しないようにする 14 p.StartInfo.CreateNoWindow = true; 15 //コマンドラインを指定("/c"は実行後閉じるために必要) 16 p.StartInfo.Arguments = @"/c dir \SERVSER\shared"; 17 18 //起動 19 p.Start(); 20 21 //出力を読み取る 22 string results = p.StandardOutput.ReadToEnd(); 23 24 //プロセス終了まで待機する 25 //WaitForExitはReadToEndの後である必要がある 26 //(親プロセス、子プロセスでブロック防止のため) 27 p.WaitForExit(); 28 p.Close(); 29 30 //コマンドラインから情報が取得できなければ処理終了 31 if (results == String.Empty) return; 32 33 //空きドライブ容量文字情報変数 34 String driveInfo = String.Empty; 35 36 System.IO.StringReader rs = new System.IO.StringReader(results); 37 38 //ストリームの末端まで繰り返す 39 while (rs.Peek() > -1) 40 { 41 //一行読み込んで表示する 42 Console.WriteLine(rs.ReadLine()); 43 if (rs.ReadLine().Contains("空き領域") == true) 44 { 45 //空きドライブ容量文字情報を格納 46 driveInfo = rs.ReadLine(); 47 48 //※ここで空きドライブ容量文字情報から、 49 //空きドライブ容量のみ取得して処理を抜ける 50 51 52 break; 53 } 54 } 55 rs.Close(); 56 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2019/07/22 13:32

コレじゃほぼ丸投げだと思うんですが。 https://teratail.com/help/avoid-asking そもそもこのソースでTcpListener出てこない上に質問文は「クライアントから」となっていて、サーバー側の話をしているのかクライアント側の話をしているのかサッパリわかりません。
YAmaGNZ

2019/07/22 13:59 編集

TCP/IPの通信ですらないのですが・・・ コマンドプロンプトの標準出力を読んでるだけですよね。 リンク先を参考にしてTCP/IP通信を行うというのであっても、貴方がどのような通信を行いたいか(Clientからはデータを送るのみとか)によって実現方法は変わってきます。 まずはご自身の通信のプロトコルを決めるところから行わないとつらいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問