WCF-WWSAPI를 배우고 있고 Visual C++ 클라이언트와 C#을 사용하여 ICalculator example over TCP and duplex calls을 개발 중입니다. 기본적으로 내 클라이언트 프로그램이 서비스에 555를 추가하려고합니다. 번호 및 서비스는 콜백을 통해 화면에 결과를 인쇄하기 위해 클라이언트를 호출합니다 ... 클라이언트 -> 서비스 dommunications 잘 작동, 내 클라이언트가 AddTo 기능을 호출하는 서비스에 값을 보낼 수 있으며 작동합니다. 이 콜백을 데리러 내 서버 생성자가WWSAPI 클라이언트 및 WCF 서비스를 사용하는 콜백 구현
hr = WsCreateMessageForChannel(
threadInfo->channel,
NULL,
0,
&message,
error);
if (FAILED(hr))
{
PrintError(hr, error);
}
const WS_MESSAGE_DESCRIPTION* messageDescriptions[] = {
// Result callback message
&tempuri_org_wsdl.messages.ICalculatorDuplex_Equals_OutputCallbackMessage, //<-- CHECK ON TEMPURI.ORG.WSDL.H
// Equation callback message
&tempuri_org_wsdl.messages.ICalculatorDuplex_Equation_OutputCallbackMessage //<-- CHECK ON TEMPURI.ORG.WSDL.H
};
for (;;) // to receive all potential callback messages in an infinite loop
{
void* callbackBody = NULL;
ULONG index = 0;
hr = WsReceiveMessage(
threadInfo->channel,
message,
messageDescriptions,
WsCountOf(messageDescriptions),
WS_RECEIVE_OPTIONAL_MESSAGE,
WS_READ_REQUIRED_POINTER,
heap,
callbackBody, <===this VALUE is 0x000000 from the server and I send an int
sizeof(callbackBody),
&index, // The returned index is used to determine which callback is received
NULL,
error);
이다 : 그러나 어떤 이유로 내 클라이언트가 값을받지 않는 것은
이 내 클라이언트가하는 일입니다 ... 서비스에서 인쇄하는
public CalculatorService()
{
result = 0.0D;
equation = result.ToString();
callback = OperationContext.Current.GetCallbackChannel<ICalculatorDuplexCallback>();
}
이는 콜백 계약에 내 기능입니다 :
public void AddTo(double n)
{
Console.WriteLine("Dentro de AddTo");
result += n;
equation += " + " + n.ToString();
callback.Equals(result);
}
을 뉴욕 도움말/제안이 higly 대단히 감사합니다
을 감상 할 수있다마누엘
어떤 도움을 주시겠습니까? –