Servicio Windows

08/07/2009 - 23:24 por Pintamono | Informe spam
Que tal,

Estoy haciendo un servicio que se encarga de conectarse a otro
servicio via socket, para ello estoy usando el codigo de la pagina de
ejemplo de microsoft, pero tengo un pequeño problema...

este es el codigo

try
{
// Establish the remote endpoint for the socket.
// The name of the
// remote device is "host.contoso.com".
//IPHostEntry ipHostInfo = Dns.GetHostByName
("localhost");
IPAddress ipAddress Dns.GetHostEntry("[IP_DEL_SERVER]").AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);

// Create a TCP/IP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);

// Connect to the remote endpoint.
client.BeginConnect(remoteEP,
new AsyncCallback(ConnectCallback), client);
connectDone.WaitOne();

// Send test data to the remote device.
Send(client, psMensaje);
sendDone.WaitOne();

// Receive the response from the remote device.
Receive(client);
receiveDone.WaitOne();

// Release the socket.
client.Shutdown(SocketShutdown.Both);
client.Close();

}

se me queda pegado en el "sendDone.WaitOne()", ahi se queda por un
rato (bastante), creo que es problema de respuesta del server

estoy en lo correcto?

Este es mi primer paso en lo que es socket y por eso estoy usando el
ejemplo de microsoft, agradeceria orientacion al respecto, tengo que
hacer un servicio que reciba datos de una aplicacion y los envie a
otro servidor y espere la respuesta, luego responder a quien me envia
los datos...

segun lo anterior, necesito un servidor de socket sincronico en ambos
casos correcto?
 

Leer las respuestas

#1 Angel J. Hernández M.
11/07/2009 - 10:51 | Informe spam
WaitOne sólo bloquea el hilo actual hasta WaitHandle recibe una señal,
pregunto... Para que quieres un servidor sincrónico de sockets?

Saludos,

Angel



Angel J. Hernández M
MCP,MCAD,MCSD,MCDBA
Microsoft MVP
http://msmvps.com/blogs/angelhernandez
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
http://www.customware.net
Technical Solutions Architect



"Pintamono" wrote in message
news:
Que tal,

Estoy haciendo un servicio que se encarga de conectarse a otro
servicio via socket, para ello estoy usando el codigo de la pagina de
ejemplo de microsoft, pero tengo un pequeño problema...

este es el codigo

try
{
// Establish the remote endpoint for the socket.
// The name of the
// remote device is "host.contoso.com".
//IPHostEntry ipHostInfo = Dns.GetHostByName
("localhost");
IPAddress ipAddress > Dns.GetHostEntry("[IP_DEL_SERVER]").AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);

// Create a TCP/IP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);

// Connect to the remote endpoint.
client.BeginConnect(remoteEP,
new AsyncCallback(ConnectCallback), client);
connectDone.WaitOne();

// Send test data to the remote device.
Send(client, psMensaje);
sendDone.WaitOne();

// Receive the response from the remote device.
Receive(client);
receiveDone.WaitOne();

// Release the socket.
client.Shutdown(SocketShutdown.Both);
client.Close();

}

se me queda pegado en el "sendDone.WaitOne()", ahi se queda por un
rato (bastante), creo que es problema de respuesta del server

estoy en lo correcto?

Este es mi primer paso en lo que es socket y por eso estoy usando el
ejemplo de microsoft, agradeceria orientacion al respecto, tengo que
hacer un servicio que reciba datos de una aplicacion y los envie a
otro servidor y espere la respuesta, luego responder a quien me envia
los datos...

segun lo anterior, necesito un servidor de socket sincronico en ambos
casos correcto?

Preguntas similares