Hola Amigos del Foro,
aquí agrego y acudo a su experiencia y conocimiento.
Estoy validando migrar un pequeño modulo hacia una versión mas actualizada de Delphi. El detalle que tan solo se tiene los fuentes de la parte del cliente y no del servidor que se asume esta usando un servidor (TTcpServer) este aplicativo fue implementado por un proveedor y es una caja negra.
La pregunta y la ayuda es la siguiente: Se quiere ver la posibilidad de migrar la parte de cliente en una versión mas reciente de delphi. como sabemos la nueva versión ya no utiliza los componentes TTcpClient, TTcpServer y actualmente se usa TClientSocket, TServerSocket. Como les mencionaba la parte del servidor es una caja negra.
La parte del cliente que esta configurada es la siguiente:
Código Delphi
[-]
var
iLen1, iLen2, sResult : Integer;
BufHost, BufRcvd : Array[0..4096] of Char;
begin
TcpClient1.RemoteHost := '255.255.255.0';
TcpClient1.RemotePort := '9999';
TcpClient1.Open;
if TcpClient1.Connected = False then
begin
LenRcvd:= TcpClient1.SendBuf(BufHost,iLen1);
...
while TcpClient1.WaitForData(50000) = true do
begin
...
sResult:= TcpClient1.ReceiveBuf(BufRcvd, iLen2);
end;
...
end;
end;
Yo he intentado hacer algo similar con los nuevos componentes pero no me esta funcionando ya que el aplicativo que recibe los mensajes muestra los mensajes de Ingreso y Salida, pero parece que no esta enlazando y no esta enlazando.
Código Delphi
[-]
var
cltsckCliente : TClientSocket;
iLen1, iLen2, sResult : Integer;
BufHost, BufRcvd : Array[0..4096] of Char;
ssTemp: TWinSocketStream;
begin
cltsckCliente.Address:= '255.255.255.0';
cltsckCliente.Host := '255.255.255.0';
cltsckCliente.Port := '9999';
cltsckCliente.Open;
if cltsckCliente.Socket.Connected then
begin
lenRcvd:= cltsckCliente.Socket.SendBuf(BufHost, iLen1);
ssTemp := TWinSocketStream.Create(cltsckCliente.Socket, 180000);
while ssTemp.WaitForData(50000) = true do
begin
LenRcvd := cltsckCliente.Socket.ReceiveBuf(BufRcvd, iLen2);
...
end;
end;
end;
Amigos del foro es posible trabajar con los componentes TClientSocket --> TTcpServer que estos se enlacen y haya comunicación entre ellos? Si es posible esto pueden ayudarme indicándome si hay algún error en el código que les muestro? que sugerencias y/o ejemplos pueden compartir para hacer la prueba.
Muchas gracias de antemano.