日期:2014-05-18  浏览次数:20861 次

C#中网络通信的问题
由于做一个简单的漏洞扫描,首先我要测试向服务器发送数据能保证接受到数据,我写了如下代码,部分是用于测试的。但是向服务器发送请求,结果却不能接受到返回信息,请高手们帮忙看看。如果有人能加我QQ帮我解决问题的话就更加感谢了。QQ:185691926  
  PS:第一次写网络应用程序,对于向提供WEB服务的服务器发送请求这一方面也不是很清楚,希望找个群大家一起探讨学习。
  try
  {
  server = new TcpClient(target,80); //target此处为随意一个域名 server在前面已经定义了
  MessageBox.Show("Tcpclient启动");
  //server.Close();
  }
  catch (SocketException)
  {
  MessageBox.Show("该地址未提供WEB服务!");
  return;
  }

  //********************************请求服务******************************
  //***********************************TCP协议*************************
  NetworkStream ns = server.GetStream();
  if (ns.CanWrite)
  {
  input = "get /_index.html http/1.1";
  ns.Write(Encoding.ASCII.GetBytes(input), 0, input.Length);
  ns.Flush();
  MessageBox.Show("写入成功");
  }
  else
  {
  MessageBox.Show("不能写");
  return;
  }
  if (ns.CanRead)
  {
  //MessageBox.Show("can read");
  //return;
  data =new byte[1024];
  recv = ns.Read(data, 0, data.Length);
  MessageBox.Show(recv.ToString()); //此处居然为0 我就想不通为什么发送请求过去却接受不到任何数据
  return;
  output = Encoding.ASCII.GetString(data, 0, recv);
  richTextBox1.Text += output; //用一个控件来显示接受到的数据
  }
  else
  {
  MessageBox.Show("不能读");
  return;
  }

------解决方案--------------------
如果你知道返回的字符串列表是通过一个固定的端口来返回的,你就开启一个线程去监听这个端口
------解决方案--------------------
你没有指定端口哪会返回数据?