初学者请教一个TCP通信的问题。

rainzero999 2012-05-28 11:11:37
一段TCP连接客户端所用的代码如下:


string str1 = "";

TcpClient client = new TcpClient();

try
{
client.Connect("127.0.0.1", 1245); // 与服务器连接
}
catch (Exception ex)
{
textbox = textbox + ex.Message;
return;
}


NetworkStream ns = client.GetStream();
byte[] bytes = new byte[1024];//建立缓冲区
int bytesRead = ns.Read(bytes, 0, bytes.Length);//读取字节流

str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);




客户端连接上服务器端,如果连接上可以接受到服务器端发过来的数据,
请问我如何判断接收到的数据“Encoding.ASCII.GetString(bytes, 0, bytesRead)”中包含“0”还是“1”,如果包含“0”就回复发送一个“A”,如果包含“1”就回复发送一个“B”呢?
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainzero999 2012-05-29
  • 打赏
  • 举报
回复
这里用if的话不会有问题吗?因为如果服务器端发过来的数据很久没过来,if会执行吗?
bdmh 2012-05-29
  • 打赏
  • 举报
回复
contains和indexof都可以
vinjent 2012-05-29
  • 打赏
  • 举报
回复
Encoding.ASCII.GetString=String
if(String.contains("0"))
Send("A");
else if(String.contains("1"))
Send("B");
Send改成自己的發送函式﹗
vinjent 2012-05-29
  • 打赏
  • 举报
回复
"因为如果服务器端发过来的数据很久没过来"
那麼你的
str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);
永遠是空值,且也不會執行,那你後面不管用if, switch, while....,有那一個會執行?

那你一開始應該問,如何讓數據一定會執行傳送跟接收吧?而你問的是
str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);
"中包含“0”还是“1”,如果包含“0”就回复发送一个“A”,如果包含“1”就回复发送一个“B”呢?"
那我當然回覆你後面的東西﹗

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧