¿Por qué no conectarse desde la aplicación WinRT (en StreamSocket) a la aplicación win32 (en QTcpSocket)
Estoy desarrollando una aplicación de cliente de chat de Windows 8.1 con la aplicación metro y el escritorio win32. El problema no está conectado desde la aplicación winrt a la aplicación win32 en el zócalo Tcp: la excepción conectada falló con un error que no responde desde otra computadora. ¿Cuál es el problema?
Estoy probando en el local mashine:
void Connector::ConnectSocketTsp(void)
{
socket = ref new StreamSocket();
rootPage->NotifyUser("Connecting to ...", NotifyType::StatusMessage);
{
HostName^ serverHost = ref new HostName("127.0.0.1"); //("localhost");
// Connect...
create_task(socket->ConnectAsync(
serverHost, "15500", SocketProtectionLevel::PlainSocket)).then([this](task<void> previousTask)
{
try
{
previousTask.get();
rootPage->NotifyUser("Connected", NotifyType::StatusMessage);
m_reader = ref new DataReader(socket->InputStream);
m_reader->InputStreamOptions = InputStreamOptions::ReadAhead;
m_writer = ref new DataWriter(socket->OutputStream);
ReceiveStringLoop(m_reader, socket);
}
catch (Exception^ exception)
{
rootPage->NotifyUser("Connect failed with error: " + exception->Message, NotifyType::ErrorMessage);
}
});
}
}
excepción-> Mensaje = "Un intento de conexión no tuvo éxito porque desde otra computadora en el tiempo requerido usted obtiene la respuesta deseada se ha desconectado o la conexión establecida debido a una respuesta incorrecta ya está conectada a la computadora".
Y servicio para traducir mensajes:
void start()
{
logMessage(QString("Start service"), QtServiceBase::Information);
QCoreApplication *app = application();
daemon = new ClientSocket(15500, app);
if ( !daemon->listen(QHostAddress::LocalHost, 15500) ) // QHostAddress::Any
logMessage(QString("Failed to bind to port %1").arg(daemon->serverPort()), QtServiceBase::Error);
else
logMessage(QString("Success to bind to port %1").arg(daemon->serverPort()), QtServiceBase::Information);
if ( !daemon->isListening() )
{
logMessage(QString("Failed to bind to port %1").arg(daemon->serverPort()), QtServiceBase::Error);
app->quit();
}
}
Telnet se conecta con éxito a 127.0.0.1 15500 ...