teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

アドレスを間違えて公開していた

2020/03/01 18:20

投稿

kaitorisenkou
kaitorisenkou

スコア28

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  public class Client {
11
11
  public static void Main() {
12
12
  string sendMsg = "";
13
- string host = "133.167.92.108";
13
+ string host = "xxx.xxx.xxx.xxx";
14
14
  int port = 7777;
15
15
 
16
16
  TcpClient tcp = new TcpClient(host, port);

1

複数回recvを考慮して修正

2020/03/01 18:20

投稿

kaitorisenkou
kaitorisenkou

スコア28

answer CHANGED
@@ -1,7 +1,6 @@
1
1
  解決しましたので、修正したソースコードを載せておきます。
2
2
 
3
3
  ```C#
4
- //クライアント側
5
4
  using System;
6
5
  using System.IO;
7
6
  using System.Net;
@@ -22,6 +21,7 @@
22
21
  int resSize = 0;
23
22
 
24
23
  do {
24
+ ms = new MemoryStream();
25
25
  Console.WriteLine("enter message: ");
26
26
  sendMsg = Console.ReadLine()+"\0";
27
27
  byte[] sendBytes = Encoding.UTF8.GetBytes(sendMsg);
@@ -37,7 +37,7 @@
37
37
  Console.WriteLine("" + resSize);
38
38
  } while (stream.DataAvailable && resBytes[resSize - 1] != '\0');
39
39
 
40
- string resMsg = Encoding.UTF8.GetString(ms.GetBuffer(), (int)ms.Length - resSize, (int)ms.Length);
40
+ string resMsg = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length);
41
41
  //string resMsg = Encoding.UTF8.GetString(resBytes);
42
42
  Console.WriteLine("response message: " + resMsg);
43
43
  } while (sendMsg != "exit\0");