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