Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
Error Delphi Sockets

Hola, tengo un grave problema, estoy haciendo un chat con socket, conecto todos los socket al puerto 8092, y como ip localhost, todo bien conecta y todo perfecto, pero (siempre hay un pero ) al escribir un mensaje y al apretar en el boton Enviar (estoy enviando de Servidor a CLiente un mensaje) me marca el siguiente error:

:: Windows socket error: No se ha permitido una petición para enviar o recibir datos ya que el socket no está conectado y no se ha proporcionado ninguna dirección, al realizar el envío en un socket de datagramas por medio de una llamada sendto (10057), on API 'send' ::

pero cuando envio de Cliente a servidor lo hace perfecto, el problema está al enviar de servidor a cliente y se me desconecta de inmediato...

un poco de codigo:

Cliente Socket

propiedad OnRead

Código Delphi [-]
var
Listo,Comando: String;

begin
Comando:= Trim(Socket.ReceiveText);
Listo:= Copy(Comando, 0, 3);
Delete(Comando, 0, Pos('|', COmando));
if Listo = 'MSS' then begin
Memo1.Lines.Add(Comando);
Socket.SendText('LST|');
end;

if Listo = 'LST' then begin
Memo1.Lines.Add(MSGS);
end;

Servidor Socket:
propiedad OnCLientRead:
Código Delphi [-]
var
Listo,Comando: String;

begin
Comando:= Trim(Socket.ReceiveText);
Listo:= Copy(Comando, 0, 3);
Delete(Comando, 0, Pos('|', COmando));
if Listo = 'MSG' then begin
Memo1.Lines.Add(Comando);
Socket.SendText('LST|');
end;

if Listo = 'LST' then begin
Memo1.Lines.Add(MSGS);
end;

boton enviar:

Código Delphi [-]
if Button1.Enabled = False then begin
//CLiente
MSGS:= Edit2.Text;
CLiente.Socket.SendText('MSG|'+Edit1.Text+' : '+MSGS);
end else
begin
//Servidor
MSGS:= Edit2.Text;
Servidor.Socket.SendText('MSS|'+Edit1.Text+' : '+MSGS);
end;


gracias espero que me puedas ayudar...

vuelvo en la noxe gracias

54LU2
Responder Con Cita
  #2  
Antiguo 09-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
hola, creo que el problema está en que no guardas informacion del socket cliente, y entonces no hay forma de que le puedas enviar un mensaje si no estas dentro del evento ONREAD.
En el Servidor deberias crear una variable tipo TCustomWinSocket y asignarle la variable socket del cliente en el evento ClientRead. Algo asi:

procedure TForm1.ss1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
lb1.Items.Add(socket.RemoteHost+' dice:');
lb1.Items.Add(socket.ReceiveText);
cli1:=socket;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
cli1.SendText(edit1.Text);
end;


Espero te sirva. No creo que sea optimo. Pero funciona.

Saludos

PD: Si te hace falta te envio el mini codigo que hice para esto.
Responder Con Cita
  #3  
Antiguo 10-10-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
gracias lo probaré, y si me gustaria mucho que subieras el ejemplillo, gracias muchas gracias..
Responder Con Cita
  #4  
Antiguo 10-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
aqui van los fuentes.


saludos
Archivos Adjuntos
Tipo de Archivo: zip socket.zip (15,8 KB, 22 visitas)
Responder Con Cita
  #5  
Antiguo 11-10-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
gracias, lo revisaré....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sockets en Delphi 7 Luis_deluna Redes 3 01-09-2006 18:53:17
Sockets en delphi 7? jam888 Varios 2 17-05-2006 23:34:23
Delphi y Sockets david duarte Conexión con bases de datos 36 11-10-2005 19:00:04
capturar ERROR de Sockets killaton Internet 1 26-03-2005 20:19:45
error con sockets txelis Internet 1 14-08-2003 15:56:10


La franja horaria es GMT +2. Ahora son las 22:35:13.


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
Copyright 1996-2007 Club Delphi