Javascript TcpClient don';使用ajax调用无法接收任何数据

Javascript TcpClient don';使用ajax调用无法接收任何数据,javascript,c#,ajax,tcpclient,Javascript,C#,Ajax,Tcpclient,我正在努力找出如果服务器端通过ajax调用,为什么TcpClient不接收任何数据 然而,如果我在服务器端代码中设置断点,即使我使用ajax调用它,它也可以正常工作 我还调查了我的JavaScript函数是否是异步的,但我的JavaScript函数似乎还可以 JavaScript函数: $('#btnGO').click(function () { var url = 'Home/Command'; var data = { Location: $('#Loca

我正在努力找出如果服务器端通过
ajax
调用,为什么
TcpClient
不接收任何数据

然而,如果我在服务器端代码中设置断点,即使我使用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);
如果我在服务器端设置断点,则输出:

真的22

如果我没有在服务器端设置断点,则输出:

真0


我想您应该调用GetStream(),然后对返回的NetworkStream调用Read()。Read()正在阻塞,不允许您的操作方法过早返回。现在,没有阻止调用来阻止您的操作方法立即返回(比您的tcp客户端接收数据的速度更快),这就是为什么当您输入断点时,会得到22个值——它不会立即返回。看起来很尴尬,您的UI响应依赖于某人通过套接字向您的API发送数据


让我再强调一点:你所做的真的很奇怪。您的UI将等待客户端通过套接字向API发送数据。话虽如此,请查看以下链接:

我想您应该调用
GetStream()
,然后在返回的
NetworkStream上调用
Read()
Read()
正在阻塞,不允许您的操作方法过早返回。现在,没有阻止调用来阻止您的操作方法立即返回(比您的tcp客户端接收数据的速度更快),这就是为什么当您输入断点时,会得到22个值——它不会立即返回。你的UI响应性依赖于某人通过套接字向你的API发送数据,这似乎很尴尬……好吧,让我进一步强调一下:你所做的真的很奇怪。您的UI将等待客户端通过套接字向API发送数据。说到这里,请查看以下链接:@Steve'saD谢谢你。请写下你的评论作为答案,这样我就可以选择了。如果你告诉我你实际上想做什么,即你想做什么样的应用程序,我也许能给你指出正确的方向。你的第一句话让我觉得你只是想把数据从javascript发送到你的api/端点。您不需要套接字,只需在签名中添加一个模型,然后让mvc/WebAPI进行模型绑定。。。。