TcpClient 未通过 ajax 调用接收任何数据
TcpClient don't receive any data with ajax call
我正在努力找出为什么 TcpClient
在服务器端通过 ajax
调用时没有收到任何数据。
但是,如果我在我的服务器端代码中放置 断点,即使我用 ajax.
调用它,它也能正常工作
我还调查了我的 JavaScript 函数是否是异步的,但我的 JavaScript 函数似乎没问题。
JavaScript函数:
$('#btnGO').click(function () {
var url = 'Home/Command';
var data = { Location: $('#Location').val() };
$.when($.getJSON(url, data)).then(function (result) {
$('.Console').html(result);
});
});
服务器端:
TcpClient tc = new TcpClient("Host Address", 23);
return Json(tc.Connected + " " + tc.Available, JsonRequestBehavior.AllowGet);
如果我在服务器端放置断点则输出:
true 22
如果我不在服务器端设置断点则输出:
true 0
我认为您希望调用 GetStream(),然后在 returned NetworkStream 上调用 Read()。 Read() 正在阻塞,并且不允许您的操作方法过早 return。现在,没有阻止调用来阻止您的操作方法立即 returning(比您的 tcp 客户端接收数据更快),这就是为什么当您放入断点时得到 22 - 它不会立即return。您的 UI 响应速度取决于有人通过套接字向您的 API 发送数据似乎很尴尬....
让我再强调一下:你在做什么真的很奇怪。您的 UI 将等待客户端通过套接字向您的 API 发送数据。话虽如此,请查看以下内容 link:https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream(v=vs.110).aspx
我正在努力找出为什么 TcpClient
在服务器端通过 ajax
调用时没有收到任何数据。
但是,如果我在我的服务器端代码中放置 断点,即使我用 ajax.
调用它,它也能正常工作我还调查了我的 JavaScript 函数是否是异步的,但我的 JavaScript 函数似乎没问题。
JavaScript函数:
$('#btnGO').click(function () {
var url = 'Home/Command';
var data = { Location: $('#Location').val() };
$.when($.getJSON(url, data)).then(function (result) {
$('.Console').html(result);
});
});
服务器端:
TcpClient tc = new TcpClient("Host Address", 23);
return Json(tc.Connected + " " + tc.Available, JsonRequestBehavior.AllowGet);
如果我在服务器端放置断点则输出:
true 22
如果我不在服务器端设置断点则输出:
true 0
我认为您希望调用 GetStream(),然后在 returned NetworkStream 上调用 Read()。 Read() 正在阻塞,并且不允许您的操作方法过早 return。现在,没有阻止调用来阻止您的操作方法立即 returning(比您的 tcp 客户端接收数据更快),这就是为什么当您放入断点时得到 22 - 它不会立即return。您的 UI 响应速度取决于有人通过套接字向您的 API 发送数据似乎很尴尬....
让我再强调一下:你在做什么真的很奇怪。您的 UI 将等待客户端通过套接字向您的 API 发送数据。话虽如此,请查看以下内容 link:https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream(v=vs.110).aspx