Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
8K es el tamaño por default:
Código Delphi [-]
var
  dwBuffer: DWORD;
  iSize: Integer;
begin
  with TClientSocket.Create(nil) do
    try
      Host := 'microsoft.com';
      Port := 80;
      Active := True;
      if Socket.SocketHandle <> INVALID_SOCKET then
      begin
        iSize := SizeOf(dwBuffer);
        getsockopt(Socket.SocketHandle, SOL_SOCKET, SO_RCVBUF, PChar(@dwBuffer), iSize);
        ShowMessageFmt('Tamaño del Buffer de Recepción: %d bytes', [dwBuffer]);
      end
    finally
      Free;
    end;

Podes cambiarlo utilizando la función setsockopt, aunque me parece que tienes un problema de diseño, no del tamaño del buffer.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #2  
Antiguo 04-04-2006
allende allende is offline
Miembro
 
Registrado: nov 2003
Posts: 19
Poder: 0
allende Va por buen camino
Si, estoy de acuerdo contigo. El problema no es aumentar el buffer pues no se el tamaño exacto del texto a enviar. Lo que mas bien necesito es una idea de como poder capturarlo completo, o al menos como unirlo, en el evento OnRead.

saludos y gracias.
Responder Con Cita
  #3  
Antiguo 04-04-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por allende
Si, estoy de acuerdo contigo. El problema no es aumentar el buffer pues no se el tamaño exacto del texto a enviar. Lo que mas bien necesito es una idea de como poder capturarlo completo, o al menos como unirlo, en el evento OnRead.
¿Cuántas conexiones calculas que mantendrás simultáneamente?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 04-04-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Lo siento, creo que mi error viene de mi desconocimiento del componente TServerSocket. Yo estoy acostumbrado a usar los socket con las funciones de la API y nunca he tenido problemas para mandar un monton de bytes (incluso un archivo entero cargado en memoria) con una sola instruccion send y luego recogerlo poco a poco del otro lado con la instruccion recv.

Supongo que habra alguna caracteristica de este componente que me paso por alto y que no permite hacer esto. Ademas tengo que aclarar que normalmente uso sockets del tipo Blocking, lo que me lleva a pensar que el problema tambien pueda venir en que tu usas del tipo NonBlocking es decir que realizan sus operaciones de forma asincrona, y aunque no lo puedo asegurar, supongo que utiliza algun tipo de buffer internamente para realizar las operaciones.

Una vez mas disculpas, a veces las ganas de ayudar me lleva a meter la pata
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
tClientSocket, tServerSocket StartKill Varios 5 26-04-2011 21:00:34
Capturar Mensajes de error daly Varios 5 27-10-2005 20:56:46
Capturar Mensajes de Windows externos a la aplicación Descendents API de Windows 1 02-08-2005 16:21:08
Problemas con TCLientSocket epalacios OOP 0 13-04-2005 11:42:28
Capturar mensajes de error de SQL server User_baja1 SQL 2 10-02-2005 18:11:21


La franja horaria es GMT +2. Ahora son las 18:29:15.


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