Créer un chat en langage C .

Masterchief -  
 Masterchief -
Bonjour,

Je cherche à créer un chat en langage C, et seulement en langage C car je voudrais l'intégrer à un autre programme. Je travaille sous linux. J'ai commencé par faire deux fichiers avec les fonctions qui écrivent dans un fichier .txt, en ouvrant un programme avec une console et un second avec une autre console, pour qu'on puisse se parler... j'espère être assez clair...
Et donc je me demandais si c'était vraiment une bonne idée, car ma fonction lit dans le fichier, et affiche ce qu'il y a puis écris si j'écris quelque chose dans la console, mais si l'autre écrit, ça ne relit pas depuis le début dans la console...

Alors si vous pouvez me donner un petit coup de main ça pourrait m'aider, je suis pas très fort non plus en programmation ...

Merci d'avance

voila un exemple de ma fonction

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <unistd.h>

#define EffacerEcran system("clear")
#define goto(x,y) printf("\033[%d; %dH", y,x)


int main( void ) {
char nom1[20];
char tmp[500];
char a;
FILE *chat;

do
{
chat = fopen("blabla2.txt", "r+");
if (!chat)
printf("ERREUR: Impossible d'ouvrir le fichier.\n");
}
while (!chat);



printf("entrer votre nom \n");
scanf("%s",nom1);

while(1){

while(fgets(tmp,500,chat)){
printf("%s said: \t", nom1);
printf("%s", tmp);
}


printf("\n%s says:",nom1);
fgets(tmp,500,stdin);
fprintf(chat,"%s", tmp) ;
};
return 0;


}

A voir également:

6 réponses

countvenom Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   271
 
Salut,
Pourquoi dans ton do, tu fais un if (!chat), alors que la condition de fin de ta boucle est justement (!chat) ? Et d'ailleurs pourquoi fait tu une boucle pour ouvrir ton fichier, si c'est toujours le même ?

Je ne comprend pas vraiment ce que tu souhaite faire.
Pourquoi écris tu dans des fichiers, pour faire communiquer deux client ?
0
Masterchief
 
pour le if(!chat), c'est que je l'avais fait au debut, par habitude pour dire que le fichier n'avait pas pu etre ouvert.
Et j'ai fait une boucle pour ouvrir mon fichier car je me disais que comme ça, le programme n'arreterait pas de lire en temps réel ce qui se trouvait dans le fichier, mais ça ne fonctionne pas comme je l'aurais espérer.
Apres, il y a sans doute un meilleurs moyen pour communiquer entre deux clients, mais je l'ai pas trouvé.
0
countvenom Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   271
 
Non, beh non, ça risque pas de marcher.

Avec fopen, tu ne fais que ouvrir le fichier, tu ne lis pas dedans.
C'est avec la fonction fgets que tu vas lire les lignes.

Mais laisse tombé, tu ne pourra pas faire une chat en communiquant avec un fichier.

Si tu veux faire une tchat, tu dois d'abord coder un serveur, et ensuite coder le client qui va si connecter.
0
Masterchief
 
et comment je code un serveur et un client qui s'y connecte?
En fait je comprends pas ce que ça veut dire, "un serveur". c'est quoi un serveur en programmation? j'ai essayé de regarder sur internet, mais on dirait que ça dépasse un peu mes connaissances. Ils parlent de socket...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
countvenom Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   271
 
En fait, il faut que tu utilise des fonctions réseau.
Un serveur, est un programme qui attend que des clients ce connecte à lui, et qui va rediriger les informations que les clients vont lui envoyer.

C'est pas à la porter du premier programmeur effectivement, si tu veux coder un tchat, tu devra faire beaucoup de recherche.
0
Masterchief
 
Il n'existe pas quelque chose de plus simple, je suppose...
ok, merci de m'avoir aidé en tous cas. Je vais voir ce que je peux faire avec ça.
0