Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Problema con sockets (https://www.clubdelphi.com/foros/showthread.php?t=86617)

JuanOrtega 09-09-2014 00:17:49

Problema con sockets
 
Hola , tengo el siguiente codigo que hice para una aplicacion que necesito que sea en consola :

Código Delphi [-]
program irc;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, PerlRegEx, ScktComp;

var
  PerlRegEx1: TPerlRegEx;
  ClientSocket: TClientSocket;
  host: string;
  nickname: string;
  canal: string;
  code: string;

begin
  try

    host := 'localhost';
    nickname := 'tester';
    canal := '#test';
    code := '';

    ClientSocket := TClientSocket.Create(nil);
    ClientSocket.host := host;
    ClientSocket.Port := 6667;
    ClientSocket.Open;

    ClientSocket.Socket.Write('enviando informacion');

    if ClientSocket.Socket.Connected = True then
    begin
      Writeln('Connected!');
      while (1 = 1) do
      begin
        code := ClientSocket.Socket.Read();
        if not(code = '') then
        begin
          Writeln(code);
        end;
      end;
    end
    else
    begin
      Writeln('Error');
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.

El problema son dos lineas :

Primero :

Código Delphi [-]
ClientSocket.Socket.Write('enviando informacion');

Que me da el siguiente error :

[DCC Error] irc.dpr(30): E2010 Incompatible types: 'NativeInt' and 'string'

En esa linea trato de enviar los datos "enviando informacion" al servidor que me conecto.

Ahora la otra linea es esta :

Código Delphi [-]
code := ClientSocket.Socket.Read();

Que me da el siguiente error :

[DCC Error] irc.dpr(35): E2035 Not enough actual parameters

Probe agregandole un nil como parametro pero ...

Código Delphi [-]
code := ClientSocket.Socket.Read(nil);

Da este nuevo error :

[DCC Error] irc.dpr(35): E2010 Incompatible types: 'NativeInt' and 'Pointer'

¿ Alguien me podria ayudar ?

pd : El tema es que tengo que usar ScktComp si o si porque no encuentro documentacion sobre como usar indy con consola para enviar y recibir informacion.

escafandra 09-09-2014 00:38:54

Cita:

Empezado por Lepuke (Mensaje 480951)
Código Delphi [-]
ClientSocket.Socket.Write('enviando informacion');

prueba así:
Código Delphi [-]
ClientSocket.Socket.SendText('enviando informacion');

Cita:

Empezado por Lepuke (Mensaje 480951)
Código Delphi [-]
code := ClientSocket.Socket.Read();

prueba así:
Código Delphi [-]
code := ClientSocket.Socket.ReceiveText;


Saludos.

JuanOrtega 09-09-2014 01:08:00

gracias por la ayuda , el codigo ya no tiene errores , pero no entiendo porque no me conecta con ningun servidor irc , ¿ ves algo mal en el codigo ?

escafandra 10-09-2014 19:56:34

Prueba
Código Delphi [-]
 ClientSocket.Active:= true;

Debes estar seguro que hay un servidor a la escucha en localhost puerto 6667

Saludos.



juanelo 10-09-2014 20:40:02

Cita:

Empezado por escafandra (Mensaje 481117)
Prueba
Código Delphi [-] ClientSocket.Active:= true;


Debes estar seguro que hay un servidor a la escucha en localhost puerto 6667

Saludos.



Ademas de eso, checa tu firewall y antivirus.


La franja horaria es GMT +2. Ahora son las 01:33:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi