简单的TcpListener挂起

时间:2013-12-05 20:12:37

标签: c# asp.net sockets http tcp

以下是我尝试的代码:(这只是为了了解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;
    }
}

0 个答案:

没有答案