Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

Le deal à ne pas rater :
Cartes Pokémon : où commander le coffret Pokémon Go Collection ...
64.99 €
Voir le deal

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyTCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
TCPLinotte est le greffon que l'on doit utiliser pour créer des connexions réseaux entre plusieurs programmes Linotte.

Ce greffon est basé sur la notion de socket réseau. Pour l'utiliser, il faut comprendre cette notion.

Ce greffon permet de créer des jeux réseaux, des services de messageries instantanées, etc.

Ce greffon est découpé en deux parties : TCPClient et TCPServeur


  1. TCPServeur

    • demarrer[/*Ⓜ318axyzk]
    • arrêter[/*Ⓜ318axyzk]
    • attendreconnexion[/*Ⓜ318axyzk]
    • envoyer[/*Ⓜ318axyzk]
    • recevoir[/*Ⓜ318axyzk]
    • fermer[/*Ⓜ318axyzk]
    • ip[/*Ⓜ318axyzk]

    [/*Ⓜ318axyzk]
  2. TCPClient

    • connexion[/*Ⓜ318axyzk]
    • fermer[/*Ⓜ318axyzk]
    • envoyer[/*Ⓜ318axyzk]
    • recevoir[/*Ⓜ318axyzk]
    • nommachine[/*Ⓜ318axyzk]

    [/*Ⓜ318axyzk]


Voici un exemple très simple pour comprendre la notion et manipuler des sockets : un mini serveur messagerie instantanée

Le programme du serveur (30 lignes !):
[php]
globale
serveur :: tcpserveur
sockets :: casier de nombres

démarrage :
début
évoque serveur.démarrer(7779)
tant que vrai, lis
socket :: nombre
affiche "on attend l'ouverture d'une nouvelle socket..."
socket vaut serveur.attendreconnexion()
affiche "un client sur la socket " + socket + " vient de se connecter !"
ajoute socket dans sockets
appelle gestion socket avec socket
ferme

gestion socket :
* socket :: nombre
début
tant que vrai, lis
message :: texte
// on attend l'arrivée de nouveaux messages sur le socket
message vaut serveur.recevoir(socket)
affiche "le client de la socket " + socket + " a dit : " + message
pour chaque sockets, lis
affiche "envoyer le message '" + message + "' à la socket " + joker
évoque serveur.envoyer(joker, message)
ferme
ferme
[/php]

Le programme du client (20 lignes !):
[php]
globale
client :: tcpclient

genègraphe :
tchat :: texte
début
évoque client.connexion("localhost", 7779)
appelle attendre message
tant que vrai, lis
questionne tchat sur "Que voulez-vous dire ?"
évoque client.envoyer(tchat)
ferme

attendre message :
message :: texte
début
tant que vrai, lis
// On attend la réception d'un message
message vaut client.recevoir()
affiche message
ferme
[/php]


Vitrine en cours de réalisation...

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Ce greffon permet de créer des sockets réseaux entre plusieurs programmes Linotte.

Avant de vous en parler un peu plus, voici une démonstration des capacités de ce greffon.

-Téléchargez la version 2.0.1 de Linotte ici : http://langagelinotte.free.fr/wordpress/

-Téléchargez le greffon TCPLinotte. Relancer l'Atelier

-Ensuite, téléchargez les trois livres attachés au post puis exécutez TCPClient qui est un client d'une messagerie instantanée 100% en Linotte !

Puis, pour se connecter, utilisez l'IP 78.243.8.89 et le port 7778. Le serveur est sur ma machine.

Copies d'écran :

[attachment=73] [attachment=74]

Les sources dans disponibles dans l'Atelier :
exemples\tutoriels\j_expert

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Bonsoir, j'ai ajouté un exemple "simple" pour comprendre la notion des sockets.

Mon serveur tourne toujours. Vous pouvez venir vous y connecter pour discuter sur la première messagerie instantanée 100% Linotte <img src=" title="Smile" />

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Bonjour,
Excellent ce nouveau greffon ! x)
Il remplace le greffon pont, non ?
Pourtant les exemples pont_client et pont_serveur sont toujours disponibles...
Et je n'ai pas trouvé l'exemple simple pour comprendre la notion de socket ^^

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Bonjour Wam,

L'exemple simple est sur le premier post :
http://langagelinotte.free.fr/forum/sho ... 75#pid6775

As-tu testé l'exemple TCPClient ?

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Oui, je développe mon propre tchat ^^ je compte également utiliser le greffon connecteur sql x)

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
C'est très bien !
Je travaillerai sur ces deux greffons en priorité alors !
Il faut que je rajoute des explications sur l'utilisation du greffon TCPLinotte.

C'est un peu léger pour l'instant...

Zamirh est venu sur le tchat... et alastor ? c'est qui ?

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
alastor c'est moi (ou plutôt le nom de mon pc :p) ^^

Pour bien comprendre le fonctionnement du greffon j'utilise également les trois livres du messager Linotte.

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
C'est vraiment excitant tout ça hihi !

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
J'ai pu constater que si on lançait 2 fois le même serveur, il affichait alors automatiquement un message d'erreur.
Du coup, nous n'avons pas besoin de prévoir cette erreur dans notre code.

Existe-t-il d'autres messages d'erreurs déjà programmés ?

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Oui, le greffon va effectuer quelques vérifications.

Je suis sur une version 0.2 qui en fera un peu plus. Elles seront décrites sur le premier post.

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Je viens de mettre à jour le serveur de messagerie instantanée (TCPClient, TCPServeur, TCPCommun).

J'ai ajouté des nouvelles commandes suivantes :

- ping, permet d'obtenir le nom du client
- version, retourne le numéro de version du serveur, l'heure et un message de bienvenue.
- historique, retourne les 10 dernières discutions. Ainsi, un nouvel arrivant peut lire l'historique à la connexion.
- Les messages contiennent un horodatage.
- Le client a été amélioré.

Ce soir, j'installe ce nouveau serveur sur ma machine !

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Le nouveau serveur est en ligne <img src=" title="Big Grin" />

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Petit rappel :

Si vous voulez diffuser votre programme et pour les utilisateurs sous Windows :
http://langagelinotte.free.fr/forum/sho ... hp?tid=854

Je viens de le faire pour le client de la messagerie instantanée.

L'IP 78.243.8.89 et le port 7778 du serveur.

PS : avec ce système, le programme ne s'affiche qu'une fois dans la barre des tâches !

PSS : mise à jour du client avec le greffon Configuration.

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
je viens de mettre à jour le client Windows : il utilise le greffon Configuration.

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.1, créer vos programmes réseaux en Linotte

more_horiz
Je propose en version "beta" une 0.2 du greffon TCPLinotte. La communication entre les clients et le serveur est compressée pour accélérer les connexions réseaux.

Pour l'utiliser, il faut que le client ET le serveur utilise cette version de TCPLinotte.

J'attends vos retours !

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
Le serveur refonctionne !

Il faut se connecter sur l'IP 78.243.8.89 et le port 7778.

Pour information, je l'ai installé sur mon raspberry pi (c'est quoi ce machin : http://raspberrypi.fr/ )

Le serveur devrait fonctionner 24/24h maintenant <img src=" title="Big Grin" />

Plus d'information ici : http://langagelinotte.free.fr/forum/ann ... .php?aid=4

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
"Connexion perdue avec le serveur" Snif :'(

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
Arg, tu utilises TCPCLient qui est fourni avec l'Atelier Linotte ?

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
Yep ^^

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
grrrr, peux-tu

- supprimer le fichier .greffons/TCPLinotte.zgl
- relancer l'Atelier
- relancer TCPCLient

?

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
Ca semble fonctionner si je lance le livre TCPClient.liv dans l'atelier.
En revanche, ça ne marche pas si je lance directement TCPClient.exe

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRE: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
Ok, je vais supprimer TCLClient.exe du forum.
Il a été créé avec une ancienne version du greffon.
Merci

descriptionTCPLinotte 0.2, créer vos programmes réseaux en Linotte EmptyRe: TCPLinotte 0.2, créer vos programmes réseaux en Linotte

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum