以下是我尝试的代码:(这只是为了了解TCP的工作原理。)在我的电脑上:
listener = new TcpListener(IPAddress.Any, 3000);
listener.Start();
using (TcpClient client = listener.AcceptTcpClient())
...
在asp.net按钮的事件处理程序中的服务器上:
using (var wc = new MyWebClient())
{
byte[] received = wc.UploadData("http://my ip here:3000", new byte[] { 1 });
Label1.Text = Encoding.UTF8.GetString(received);
}
我禁用所有防火墙,在我的电脑上运行第一个代码,然后点击页面按钮(在我的浏览器中)运行第二个代码。
第一个就在最后一行等待。为什么?它应该收到一个请求。
如果有更好的方式在PC上接收请求(例如网页),我想听听它。
修改:
MyWebClient
只是WebClient
,其超时时间有限:
class MyWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest request = base.GetWebRequest(uri);
request.Timeout = 10 * 1000;
return request;
}
}