下面是我正在尝试的代码:(这只是为了学习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;
}
}发布于 2022-11-20 22:38:38
通过将TcpListener.Start()封装在try中,我能够得到一个异常。(net60)
重新启动hns服务,我当时能够运行,没有问题。
net stop hns
net start hns我不会说这是一个解决办法,但它解释了一些关于地下结构的事情。我希望程序能够保存套接字,而不是服务。
https://stackoverflow.com/questions/20409703
复制相似问题