如何使用TCP发送接收方法实现异步回复?

时间:2016-11-21 19:40:54

标签: c# sockets asynchronous tcp async-await

我想要实施的情况如下:

  • 应用程序A是用C#编写的。

  • 应用程序B是用JavaScript编写的。 (不支持WebSockets 因为它是Photoshop扩展脚本)

之前,两个应用程序都使用支持fileWatchers的Files进行通信。现在转移到TCP套接字进行通信。

我在应用程序A中编写了一个TCP服务器。应用程序B可以建立连接并进行通信。

问题在于我想以异步/等待方式进行通信。例如,应用程序A需要来自应用程序B的一些数据。一个向B发送一个tcp消息,B应该响应它,结果A继续从那一点开始执行。

var info = await sendTCPmessageToB();
// do something from info.

public async Task<int> sendTCPmessageToB()
{
    String message = "ABC";
    var reply = await TCPServer.sendMessage(message);
    return reply;
}

我使用此https://codereview.stackexchange.com/questions/24758/tcp-async-socket-server-client-communication

创建了我的服务器

我已经改变了要在IStateObject中添加的代码:

private Action callback;
保持回调的

,但这似乎很麻烦,因为我无法将回调传递给TCPServer类。

我目前不确定如果我将使用当前方法获得结果。请告诉我其他最佳方法。

0 个答案:

没有答案