下面是我正在尝试的代码:(这只是为了了解TCP的工作原理。)在我的PC上:
listener = new TcpListener(IPAddress.Any, 3000);
listener.Start();
using (TcpClient client = listener.AcceptTcpClient())
...
And on the server in the event handler of an asp.net button:
using (var wc = new MyWebClient())
{
byte[] received = wc.UploadData("http://my ip here:3000", new byte[] { 1 });
Label1.Text = Encoding.UTF8.GetString(received);
}
我禁用所有防火墙,在我的PC上运行第一个代码,然后单击页面的按钮(在我的浏览器中)运行第二个代码。
第一个只在最后一行等待。为什么?它应该在接收请求。
如果有更好的方法在PC上接收请求(例如,像网页),我想听听。
- 编辑**:
MyWebClient
只是一个具有有限超时的WebClient
:
class MyWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest request = base.GetWebRequest(uri);
request.Timeout = 10 * 1000;
return request;
}
}
1条答案
按热度按时间wfypjpf41#
通过在try catch中 Package
TcpListener.Start()
,我能够得到一个异常。(net60)重新启动hns服务,然后我能够运行没有问题。
我不会说这是一个修复,但它解释了一些关于底层结构的事情。我会期望程序持有套接字,而不是服务。