lunp
 Tutto Strutture dati File Funzioni Variabili Ridefinizioni di tipo (typedef) Tipi enumerati (enum) Valori del tipo enumerato Definizioni
Funzioni
Riferimenti per il file mytcp.c
#include "lunp.h"

Funzioni

static bool myTcpReadChunksAndWriteToFileCallback (void *chunk, int chunkSize, void *param)
 
static bool myTcpReadFromFileAndWriteChunksCallback (void *chunk, int *chunkSize, void *param)
 
static ssize_t readnOnce (int fd, void *vptr, size_t n)
 
static ssize_t ReadnOnce (int fd, void *ptr, size_t nbytes)
 
static ssize_t writenPipe (int fd, const void *vptr, size_t n, bool *pipe)
 
static bool WritenPipe (int fd, void *ptr, size_t nbytes)
 
SOCKET myTcpClientStartup (const char *serverAddress, const char *serverPort)
 Crea un socket TCP e si connette al server specificato. Continua...
 
bool myTcpReadBytes (SOCKET sockfd, void *buffer, int byteCount, int *readByteCount)
 Riceve fino a byteCount byte di dati. Continua...
 
bool myTcpWriteBytes (SOCKET sockfd, void *data, int byteCount)
 Invia byteCount byte di dati. Continua...
 
bool myTcpReadString (SOCKET sockfd, char *buffer, int charCount, int *readCharCount)
 Riceve una stringa. Continua...
 
bool myTcpWriteString (SOCKET sockfd, char *string)
 Invia una stringa. Continua...
 
bool myTcpReadLine (SOCKET sockfd, char *buffer, int maxLength, int *readCharCount)
 Riceve una riga terminata con il carattere \n. La lettura non è bufferizzata. Continua...
 
int myTcpBufferedReadLine (SOCKET sockfd, char *buffer, int maxLength)
 Riceve una riga terminata con il carattere \n. La lettura è bufferizzata. Continua...
 
bool myTcpReadChunks (SOCKET sockfd, int byteCount, int *readByteCount, myTcpReadChunksCallback callback, void *callbackParam)
 Riceve fino a byteCount byte di dati, un chunk per volta. Continua...
 
bool myTcpReadChunksAndWriteToFile (SOCKET sockfd, const char *filePath, int fileSize, int *readByteCount)
 Riceve fino a byteCount byte di dati, un chunk per volta, e li scrive in un file. Continua...
 
bool myTcpWriteChunks (SOCKET sockfd, myTcpWriteChunksCallback callback, void *callbackParam, int *writtenByteCount)
 Invia dei dati, un chunk per volta. Continua...
 
bool myTcpReadFromFileAndWriteChunks (SOCKET sockfd, const char *filePath, int *writtenByteCount)
 Legge i dati da un file e li invia un chunk per volta. Continua...
 
bool myTcpReadBytesOnce (SOCKET sockfd, void *buffer, int maxByteCount, int *readByteCount)
 Riceve fino a byteCount byte di dati. Effettua un singolo tentativo di lettura. Continua...
 
bool myTcpReadBytesAsync (SOCKET sockfd, void *buffer, int byteCount, int *readByteCount)
 Riceve fino a byteCount byte di dati. Effettua un tentativo di lettura alla volta. Continua...
 
bool myTcpReadStringAsync (SOCKET sockfd, char *buffer, int charCount, int *readCharCount)
 Riceve una stringa. Effettua un tentativo di lettura alla volta. Continua...
 
bool myTcpReadLineAsync (SOCKET sockfd, char *buffer, int maxLength, int *readCharCount)
 Riceve una riga terminata con il carattere \n. Effettua un tentativo di lettura alla volta. La lettura non è bufferizzata. Continua...
 
bool myTcpReadChunksAsync (SOCKET sockfd, int byteCount, int *readByteCount, myTcpReadChunksCallback callback, void *callbackParam)
 Riceve fino a byteCount byte di dati, un chunk per volta. Effettua un tentativo di lettura alla volta. Continua...
 
bool myTcpReadChunksAndWriteToFileAsync (SOCKET sockfd, const char *filePath, int fileSize, int *readByteCount)
 Riceve fino a byteCount byte di dati, un chunk per volta, e li scrive in un file. Effettua un tentativo di lettura alla volta. Continua...
 

Documentazione delle funzioni

int myTcpBufferedReadLine ( SOCKET  sockfd,
char *  buffer,
int  maxLength 
)

Riceve una riga terminata con il carattere \n. La lettura è bufferizzata.

Parametri
sockfdIl file descriptor del socket da cui leggere la riga.
Valori di ritorno
bufferIl buffer in cui scrivere la riga ricevuta (lunghezza maxLength).
Parametri
maxLengthIl numero massimo di caratteri della riga da ricevere (incluso \0).
Restituisce
Restituisce il numero di caratteri letti (escluso \0).
Avvertimento
Non mischiare questa funzione con le funzioni di lettura non bufferizzate.
SOCKET myTcpClientStartup ( const char *  serverAddress,
const char *  serverPort 
)

Crea un socket TCP e si connette al server specificato.

Parametri
serverAddressL'indirizzo del server a cui connettersi.
serverPortLa porta del server a cui connettersi.
Restituisce
Restituisce il file descriptor del socket TCP creato e connesso.
bool myTcpReadBytes ( SOCKET  sockfd,
void *  buffer,
int  byteCount,
int *  readByteCount 
)

Riceve fino a byteCount byte di dati.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
Valori di ritorno
bufferIl buffer in cui scrivere i dati ricevuti (dimensione byteCount).
Parametri
byteCountIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce true se tutti i dati sono stati letti. Restituisce false se è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount).
bool myTcpReadBytesAsync ( SOCKET  sockfd,
void *  buffer,
int  byteCount,
int *  readByteCount 
)

Riceve fino a byteCount byte di dati. Effettua un tentativo di lettura alla volta.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
Valori di ritorno
bufferIl buffer in cui scrivere i dati ricevuti (dimensione byteCount).
Parametri
byteCountIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Non è possibile passare NULL.
Restituisce
Restituisce true se tutti i dati sono stati letti oppure è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount). Restituisce false se l'operazione di ricezione non è ancora stata completata.
Avvertimento
Prima di iniziare una nuova operazione di ricezione, è necessario inizializzare a 0 la variabile passata come parametro readByteCount.
bool myTcpReadBytesOnce ( SOCKET  sockfd,
void *  buffer,
int  maxByteCount,
int *  readByteCount 
)

Riceve fino a byteCount byte di dati. Effettua un singolo tentativo di lettura.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
Valori di ritorno
bufferIl buffer in cui scrivere i dati ricevuti (dimensione byteCount).
Parametri
maxByteCountIl numero massimo di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce false se è stato raggiunto l'end-of-file (numero di byte letti uguale a 0), altrimenti restituisce true.
bool myTcpReadChunks ( SOCKET  sockfd,
int  byteCount,
int *  readByteCount,
myTcpReadChunksCallback  callback,
void *  callbackParam 
)

Riceve fino a byteCount byte di dati, un chunk per volta.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
byteCountIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Se viene passato NULL, questo parametro viene ignorato.
Parametri
callbackLa funzione di callback da chiamare ogni volta che viene ricevuto un chunk di dati. Se viene passato NULL, questo parametro viene ignorato.
callbackParamL'eventuale parametro passato alla funzione di callback callback.
Restituisce
Restituisce true se tutti i dati sono stati letti. Restituisce false se è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount) oppure la funzione di callback ha restituito false.
bool myTcpReadChunksAndWriteToFile ( SOCKET  sockfd,
const char *  filePath,
int  fileSize,
int *  readByteCount 
)

Riceve fino a byteCount byte di dati, un chunk per volta, e li scrive in un file.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
filePathIl percorso del file in cui scrivere i dati letti.
fileSizeIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce true se tutti i dati sono stati letti. Restituisce false se è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount) oppure non è possibile scrivere tutti i dati ricevuti nel file specificato.
bool myTcpReadChunksAndWriteToFileAsync ( SOCKET  sockfd,
const char *  filePath,
int  fileSize,
int *  readByteCount 
)

Riceve fino a byteCount byte di dati, un chunk per volta, e li scrive in un file. Effettua un tentativo di lettura alla volta.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
filePathIl percorso del file in cui scrivere i dati letti.
fileSizeIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Non è possibile passare NULL.
Restituisce
Restituisce true se tutti i dati sono stati letti, è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount) oppure non è possibile scrivere tutti i dati ricevuti nel file specificato. Restituisce false se l'operazione di ricezione non è ancora stata completata.
Avvertimento
Prima di iniziare una nuova operazione di ricezione, è necessario inizializzare a 0 la variabile passata come parametro readByteCount.
static bool myTcpReadChunksAndWriteToFileCallback ( void *  chunk,
int  chunkSize,
void *  param 
)
static
bool myTcpReadChunksAsync ( SOCKET  sockfd,
int  byteCount,
int *  readByteCount,
myTcpReadChunksCallback  callback,
void *  callbackParam 
)

Riceve fino a byteCount byte di dati, un chunk per volta. Effettua un tentativo di lettura alla volta.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
byteCountIl numero di byte di dati da ricevere.
Valori di ritorno
readByteCountIl numero di byte letti. Non è possibile passare NULL.
Parametri
callbackLa funzione di callback da chiamare ogni volta che viene ricevuto un chunk di dati. Se viene passato NULL, questo parametro viene ignorato.
callbackParamL'eventuale parametro passato alla funzione di callback callback.
Restituisce
Restituisce true se tutti i dati sono stati letti, è stato raggiunto l'end-of-file (numero di byte letti minore di byteCount) oppure la funzione di callback ha restituito false. Restituisce false se l'operazione di ricezione non è ancora stata completata.
Avvertimento
Prima di iniziare una nuova operazione di ricezione, è necessario inizializzare a 0 la variabile passata come parametro readByteCount.
bool myTcpReadFromFileAndWriteChunks ( SOCKET  sockfd,
const char *  filePath,
int *  writtenByteCount 
)

Legge i dati da un file e li invia un chunk per volta.

Parametri
sockfdIl file descriptor del socket su cui scrivere i dati.
filePathIl percorso del file da cui leggere i dati da scrivere.
Valori di ritorno
writtenByteCountIl numero di byte scritti. Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce false se l'endpoint remoto ha chiuso la connessione, altrimenti restituisce true.
static bool myTcpReadFromFileAndWriteChunksCallback ( void *  chunk,
int *  chunkSize,
void *  param 
)
static
bool myTcpReadLine ( SOCKET  sockfd,
char *  buffer,
int  maxLength,
int *  readCharCount 
)

Riceve una riga terminata con il carattere \n. La lettura non è bufferizzata.

Parametri
sockfdIl file descriptor del socket da cui leggere la riga.
Valori di ritorno
bufferIl buffer in cui scrivere la riga ricevuta (lunghezza maxLength).
Parametri
maxLengthIl numero massimo di caratteri della riga da ricevere (incluso \0).
Valori di ritorno
readCharCountIl numero di caratteri letti (escluso \0). Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce true se è stato trovato il carattere \n. Restituisce false se sono stati letti maxLength caratteri senza trovare il carattere \n oppure è stato raggiunto l'end-of-file (numero di caratteri letti minore di maxLength).
bool myTcpReadLineAsync ( SOCKET  sockfd,
char *  buffer,
int  maxLength,
int *  readCharCount 
)

Riceve una riga terminata con il carattere \n. Effettua un tentativo di lettura alla volta. La lettura non è bufferizzata.

Parametri
sockfdIl file descriptor del socket da cui leggere la riga.
Valori di ritorno
bufferIl buffer in cui scrivere la riga ricevuta (lunghezza maxLength).
Parametri
maxLengthIl numero massimo di caratteri della riga da ricevere (incluso \0).
Valori di ritorno
readCharCountIl numero di caratteri letti (escluso \0). Non è possibile passare NULL.
Restituisce
Restituisce true se è stato trovato il carattere \n, sono stati letti maxLength caratteri senza trovare il carattere \n oppure è stato raggiunto l'end-of-file (numero di caratteri letti minore di maxLength). Restituisce false se l'operazione di ricezione non è ancora stata completata.
Avvertimento
Prima di iniziare una nuova operazione di ricezione, è necessario inizializzare a 0 la variabile passata come parametro readCharCount.
bool myTcpReadString ( SOCKET  sockfd,
char *  buffer,
int  charCount,
int *  readCharCount 
)

Riceve una stringa.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
Valori di ritorno
bufferIl buffer in cui scrivere la stringa ricevuta (dimensione charCount).
Parametri
charCountIl numero di caratteri della stringa da ricevere (incluso \0).
Valori di ritorno
readCharCountIl numero di caratteri letti (escluso \0). Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce true se tutta la stringa è stata letta. Restituisce false se è stato raggiunto l'end-of-file (numero di caratteri letti minore di charCount).
bool myTcpReadStringAsync ( SOCKET  sockfd,
char *  buffer,
int  charCount,
int *  readCharCount 
)

Riceve una stringa. Effettua un tentativo di lettura alla volta.

Parametri
sockfdIl file descriptor del socket da cui leggere i dati.
Valori di ritorno
bufferIl buffer in cui scrivere la stringa ricevuta (dimensione charCount).
Parametri
charCountIl numero di caratteri della stringa da ricevere (incluso \0).
Valori di ritorno
readCharCountIl numero di caratteri letti (escluso \0). Non è possibile passare NULL.
Restituisce
Restituisce true se tutta la stringa è stata letta oppure è stato raggiunto l'end-of-file (numero di caratteri letti minore di charCount). Restituisce false se l'operazione di ricezione non è ancora stata completata.
Avvertimento
Prima di iniziare una nuova operazione di ricezione, è necessario inizializzare a 0 la variabile passata come parametro readCharCount.
bool myTcpWriteBytes ( SOCKET  sockfd,
void *  data,
int  byteCount 
)

Invia byteCount byte di dati.

Parametri
sockfdIl file descriptor del socket su cui scrivere i dati.
dataIl buffer da cui leggere i dati da inviare (dimensione byteCount).
byteCountIl numero di byte di dati da inviare.
Restituisce
Restituisce false se l'endpoint remoto ha chiuso la connessione, altrimenti restituisce true.
bool myTcpWriteChunks ( SOCKET  sockfd,
myTcpWriteChunksCallback  callback,
void *  callbackParam,
int *  writtenByteCount 
)

Invia dei dati, un chunk per volta.

Parametri
sockfdIl file descriptor del socket su cui scrivere i dati.
callbackLa funzione di callback da chiamare ogni volta che deve essere inviato un chunk di dati.
callbackParamL'eventuale parametro passato alla funzione di callback callback.
Valori di ritorno
writtenByteCountIl numero di byte scritti. Se viene passato NULL, questo parametro viene ignorato.
Restituisce
Restituisce false se l'endpoint remoto ha chiuso la connessione, altrimenti restituisce true.
bool myTcpWriteString ( SOCKET  sockfd,
char *  string 
)

Invia una stringa.

Parametri
sockfdIl file descriptor del socket su cui scrivere i dati.
stringIl buffer da cui leggere la stringa da inviare.
Restituisce
Restituisce false se l'endpoint remoto ha chiuso la connessione, altrimenti restituisce true.
static ssize_t readnOnce ( int  fd,
void *  vptr,
size_t  n 
)
static
static ssize_t ReadnOnce ( int  fd,
void *  ptr,
size_t  nbytes 
)
static
static ssize_t writenPipe ( int  fd,
const void *  vptr,
size_t  n,
bool pipe 
)
static
static bool WritenPipe ( int  fd,
void *  ptr,
size_t  nbytes 
)
static