🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #16884

Re: Problemillas con los sockets

#16884
From: Paco Orts
Date: Fri, 17 Mar 2000 00:00
56 lines
2461 bytes
Bueno, este es el c�digo de la funci�n que utilizo para leer todo lo que me manden
hasta que alcanze un salto de linea. netSystem.h es una cabecera con la
declaraci�n de la funci�n leerLinea.

#include <netSystem.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

///////////////////////////////////////////////////////
//  Funci�n encargada de leer un m�ximo de longBuf
//  caracteres del socket sfd y guardarlos en buf.
//  Termina tambi�n cuando se encuentre un salto de
//  l�nea.
//  Devuelve el n�mero de caracteres leidos.
///////////////////////////////////////////////////////
int leerLinea (int sfd, char *buf, int longBuf)
{
  char *buffer;
  int bytesRestantes = longBuf;
  int bytesRecibidos;

  buffer = (char *)malloc(2 * sizeof(char));
  strcpy (buf, "");

  while (bytesRestantes > 0)
  {
    buffer[0] = ' ';
    bytesRecibidos = read (sfd, buffer, 1);
    if (bytesRecibidos == -1)
    {
      printf ("ERROR. Al recibir desde el servidor");
      return -1;
    }
    bytesRestantes -= bytesRecibidos;
    strcat(buf, buffer); //bytesRecibidos;
    if (buffer[0] == '\n') break;
  }
  return (longBuf - bytesRestantes);
}

Y por si tambi�n es lo que quieres, donde llamo a esta funci�n es:

       recepcion = leerLinea (hdlNetUse, cadena, 100);
        if (recepcion == -1)
          printf ("Error en la recepci�n desde el servidor");
        if (!strcmp (cadena, "COMMUNICATION ACCEPTED\n"))
        {

aqu� si hago un telnet nunca me pasa del if.

Gonzalo Paniagua Javier wrote:

>         MAnda el trozo de c�digo donde rellenas 'cadena_recibida'...
Technical Details
Message-ID: <38D20C42.93C42E02@mtgsystem.com>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <38CFDF82.BD9CA6A3@mtgsystem.com> <38D0A222.8EA901FF@NOSPAM.inicia.es> <38D111BE.7DA15CCE@mtgsystem.com> <8asrra$i5d$3@simancas.uva.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,58a23ab56d6ca5b2
X-Google-Attributes: gidf86c8,public
From: Paco Orts <webmaster@mtgsystem.com>
Subject: Re: Problemillas con los sockets
Date: 2000/03/17
Message-ID: <38D20C42.93C42E02@mtgsystem.com>
X-Deja-AN: 598700353
Content-Transfer-Encoding: 8bit
References: <38CFDF82.BD9CA6A3@mtgsystem.com> <38D0A222.8EA901FF@NOSPAM.inicia.es> <38D111BE.7DA15CCE@mtgsystem.com> <8asrra$i5d$3@simancas.uva.es>
To: Gonzalo Paniagua Javier <gpanjav@QUITAetsi.tel.uva.esPAM>
X-Accept-Language: en
Content-Type: text/plain; charset=iso-8859-1
X-Trace: 17 Mar 2000 11:42:32 +0100, 195.5.69.214
Organization: Arrakis Servicios y Comunicaciones SLU
MIME-Version: 1.0
Newsgroups: es.comp.os.linux.programacion