クライアントとサーバーの接続アプリを作成中です。
C#
1 //受信 2 public void Receive() 3 { 4 // クライアントからの接続を受け付ける 5 TcpClient ClientSocket = server.AcceptTcpClient(); //TCPクライアント 6 7 // 通信ストリームの取得 8 NetworkStream stream = ClientSocket.GetStream(); 9 10 // クライアントからの電文の受信 11 byte[] ReceiveDate = new byte[2000]; 12 stream.Read(ReceiveDate, 0, ReceiveDate.Length); 13 14 string str = new string(Encoding.Unicode.GetString(ReceiveDate, 0, ReceiveDate.Length).ToCharArray()); //オブジェクトの生成 15 str = str.TrimEnd("\0".ToCharArray()); 16 17 18 }
上のコードでクライアントから受信し、受信したバイナリをstring型に変換しstrに格納します。
この時点で、数字の1、2、3、4、5のいずれか+文字がstrに格納されます。
例(1サンプル)
C#
1 2 //チェック 3 public void Check(string[] s) 4 { 5 if (s[0] == 49.ToString()) 6 { 7 checkNum = 1; 8 } 9 10 else if (s[0] == 50.ToString()) 11 { 12 checkNum = 2; 13 } 14 15 else if (s[0] == 51.ToString()) 16 { 17 checkNum = 3; 18 } 19 20 else if (s[0] == 52.ToString()) 21 { 22 checkNum = 4; 23 } 24 25 else if (s[0] == 53.ToString()) 26 { 27 checkNum = 5; 28 } 29 }
そしてチェックのメソッドでstrの最初の数字(1~5)をチェックし場合分けをするシステムで実施する予定です。
ここで質問なのですが、Receiveのメソッドで受信したstrをチェックメソッドで使いたい場合、引数として渡してあげればよいと思うのですが、その方法がイマイチわかりません。
今回の場合、Receiveメソッドではstring型ですがチェックメソッドでは配列のstringです。理由があってこうしてますがこれは間違いでしょうか?
また、パラメータ、引数の理解が全然できていないので初心者にわかりやすく教えていただけませんでしょうか?
よろしくお願いいたします。
「理由があってこうしてます」の理由が何かによりますが、Checkメソッド内で引数の0番目の要素以外に何か入ってくるパターンがあるのでしょうか?
回答3件
あなたの回答
tips
プレビュー