1

voilà, j'ai programmé un programme en C? et je voudrai le recompiler avec g++ (pour apres en faire une classe...)
bon le fichier initial compile parfaitement sous gcc
mais avec g++:
jackosking@JackosKing-pc:~/Desktop/Galileo/ClientWebCam$ g++ ClientWebCam.c -o ClientWebCam
ClientWebCam.c: Dans function « int main(int, char**) »:
ClientWebCam.c:65: error: `write' undeclared (first use this function)

write est une routine pour les sockets, je ne comprent pas pourquoi ca foire:/

2

bisard, il le trouve dans unistd.h et pas dans sys/socket.h

3

-

4

jamais utilisé write pour écrire sur une socket en C ou C++.

J'utilisais send(...); de mémoire

5

write existe bel et bien pour les sockets... et c'est le même write que tu connais smile (de unistd.h)
tu peux utiliser send/recv de "sys/socket.h"
mais dansle cas des sockets, write est équivalent à un send

6

avec send, je ne peux pas envoyuer plus de 2920Ko d'un coupsad

7

-

8

heu non c pas des ko, c'est des o tongue
mais bon je voudrai envoyer 75Ko en gros en reseau local, ce doit quand meme pouvoir se faire en un coup non!

9

75ko c'est plus gros que la taille max d'un packet si je me souviens bien donc tu dois être obligé de couper avec le send je pense
mais c'est peut etre que de la merde ce que je raconte, ca fait longtemps que j'ai pas touché à ça

10

En effet Microbug, c'est pas ça du tout cheeky

Il n'y a pas de taille limite ni de découpage à faire pour un appel à write. Si tu essaies d'écrire plus de données que les buffers internes du noyau (en général de l'ordre de quelques ko), write peut soit bloquer, soit n'écrire qu'une partie des données (write revoit le nombre d'octets effectivement écrits, donc tu peux utiliser ça pour envoyer la suite après).

11

je suis sur pourtant d'avoir lu ca quelque part dans une doc sur le send neutral

12

En mode non connecté peut-être alors ?
En mode non connecté, oui tu es obligé de faire des écritures correspondant à la taille d'un paquet, puisque chaque écriture génère un et un seul datagramme.

13

ok et donc pour ca que je peux pas depasse les 2ko et des brouettestongue

14

La taille exacte dépend du protocole sous-jacent, mais oué (fait gaffe quand même, il se peut que tu tombes sur un réseau avec un taille plus petite).