Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Serveur/client [ Réseau & Internet / Sockets ] (Florentcrochet)

mercredi 6 février 2008 à 20:58:16 | Serveur/client

Florentcrochet

Bonjour ,

Mon but est de creer une connection entre un serveur et un client permettant d'envoyer et recevoir des messages.

Avec le modèle asynchrone , je rencontre beaucoup trop de problème de codage même si d'apres ce que j'ai compris il est plus sur.J'ai cherché des réponse suite à ces problèmes et la plupart des codeurs ont certifié avoir réussi purement et simplement avec la méthode synchrone.

Je vous demande donc si vous connaissez un tutorial (que je n'ai pas trouvé) ou si vous avez un petit exemple simulant tout simplement , une connection entre deux socket puis l'envoi de données de l'un a l'autre avec retour des données en synchrone (sans le callback donc).Je ne vous demande pas la lune , juste les fonction nécéssaires : écoute , connection , envoi ,reception , si j'ai bien compris.

Merci d'avance.Au revoir.

jeudi 7 février 2008 à 09:48:31 | Re : Serveur/client

wizad

Membre Club
Réponse acceptée !
Je ne sait pas quels sont tes contraintes de développement mais je peux te suggérer de regarder vers cette librairie : http://www.csharpfr.com/codes/NETACCESS-BETA-LIBRAIRIE-APPLICATION-CLIENTS-SERVEUR_44032.aspx
Elle permet d'implémenter un système clients/serveur complet.

--
William

Une réponse vous convient? N'oubliez pas le bouton Accepter!


jeudi 7 février 2008 à 13:05:32 | Re : Serveur/client

Florentcrochet

Réponse acceptée !
Re , je comprend pas grand chose au code lol.
VOila mon code , et l'erreur lors du callback de connection :
Le but est de connecter serveur et client , et d'envoyer "buf" au serveur . Le but est aussi de pouvoir envoyer du serveur au client.

public

classReseau

{

Numberone Nbo; // déclaration d'un objet de type numberone

publicSocket socketServ = newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

publicSocket socketCli = newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

publicSocket socketToCli = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

publicbool bType; // variable visant à contenir le type : serveur ou client défini dans config

publicint read ; // Variables d'envoi/reception

publicint send ;

publicbyte[] buf = { 155 }; // tableau de Données à envoyer

publicbyte[] IP = newbyte[4]; //tableau nécéssaire a IPadress

publicbyte[] BufRecept =newbyte[1]; // Tableau visant a recevoir des données

 

publicenumTEtatConnection {CONNECTE , DECONNECTE , ECOUTE }; // Enumeration pour les états cde connection

publicTEtatConnection Etat;

public Reseau(Numberone Nb)

{

Nbo = Nb;

Etat =

Reseau.TEtatConnection.DECONNECTE; //Affecte le statut deconnecté

}

 

.//Serveur

// Fonction qui permet de mettre en écoute

publicvoid Ecoute()

{

System.Net.

IPAddress ipAdd = new System.Net.IPAddress(IP); // définie l'ip

System.Net.

IPEndPoint EP = new System.Net.IPEndPoint(ipAdd, 503);

socketServ.Bind(EP);

// Lance l'écoute sur le port voulu , cherchant l'adresse ip rentrée

socketServ.Listen(1);

// Nombre de connections que le serveur peut prendre en même temps

socketServ.BeginAccept(

newAsyncCallback(this.connexionAcceptCallback), socketServ); // Lance l'attente

Etat =

TEtatConnection.ECOUTE;

}

// Fonction mettant fin à l'attente ,accepte la connection

privatevoid connexionAcceptCallback(IAsyncResult asyncResult)  ERREUR : L'objet IAsyncResult n'a pas été retourné de la méthode  asynchrone correspondante sur cette classe.
Nom du paramètre : asyncResult

{

socketCli = socketServ.EndAccept(asyncResult);

}

 

 

 

 

//Client

//Fonction de connection

publicvoid Connexion()

{

System.Net.

IPAddress ipAdd = new System.Net.IPAddress(IP); // définie l'ip

System.Net.

IPEndPoint EP = new System.Net.IPEndPoint(ipAdd, 503);

socketCli.BeginConnect(EP,

newAsyncCallback(connexionAcceptCallback), socketCli);

//Affecte l'état connecté si on est connecté à la socket client

if (socketCli.Connected)

{

Etat =

TEtatConnection.CONNECTE;

}

}

// Fonction mettant fin à la connection au serveur,ils sont connecté

privatevoid connexionConnectCallback(IAsyncResult asynresult)

{

socketCli.EndConnect(asynresult);

}

// Fonction d'envoi reception

// Envoi d'un message Client au serveur

publicvoid EnvoiMessage()

{

socketServ.BeginReceive(BufRecept, 0, 1,

SocketFlags.None, newAsyncCallback(ReceiveCallback), socketServ); // Commence la réception

socketCli.Send(buf);

//envoi le tableau de byte buf

}

//Fonction de rapel pour la reception d'un mesage

privatevoid ReceiveCallback (IAsyncResult asyncResult)

{

Nbo.lblTest.Text =

ASCIIEncoding.ASCII.GetString(BufRecept, 0, 1);

read = socketServ.EndReceive(asyncResult);

}

}


jeudi 7 février 2008 à 13:07:13 | Re : Serveur/client

Florentcrochet

Réponse acceptée !

ENfin ce n'est pas une erreur , le programme est lancé sans aucune erreur ni avertissement . Mais lors de l'execution ce problème aparait.




Cette discussion est classé dans : connection, serveur, client, simplement, synchrone


Répondre à ce message

Sujets en rapport avec ce message

Déclenchement d'évennement d'un client vers un serveur de Remoting [ par gazous ] Je n'arrive pas à déclencher un évenement depuis un client vers un serveur de Remoting en utilisant la méthode classique de déclenchement d'évenements .NET et sql serveur [ par tobleronne ] Bonjour,pour accéder à un sql serveur en .NET j'utilise desormais 'System.Data.SqlClient' à la place du create.object...Mais lorsque j'ouvre ma connec Service Web : Serveur en C# - Client en PHP. Possible?? [ par pete87150 ] Bonjour a tous,Je voudrais savoir s'il est possible de créer un service web avec un serveur en C# et un client en PHP.Je pense à l'utilisation de NuSO Au Secours (Serveur/Client) [ par JCpp ] Sur ce site, je n'ai trouvé aucune Source Server/Client avec plusieurs Client.ci non, Je ne comprends pas pourquoi sa ne fonctionne pas, j'ai bien mi Réseau local VS Internet [ par cazaux ] Actuellement je suis en train de développer un Client/Serveur. Le seul probléme est que toutes les aides que je trouve ne parle que de serveur placé à Thread + NetworkStream [ par JuS ] Je vais vous exposer mon problème (c'est un peu long à lire et à comprendre...)Je programme un programme client/serveur.Le client, en C#, communique a C#: Chat Client/Serveur => Send vers 1 seul client [ par urukuru ] Bonjour, voila le probleme, je suis en trein de faire un client serveur en c# le probleme est que j'arrive bien a envoier les messages d'un client ver remoting [ par petitou ] Salut,voila ma question :Je crée un client/serveur avec .NET Remoting. J'ai 3 classes :client, serveur et remote. remote est l'objet unique instancié Niveau de l'acceptation TCP Client [ par Fildomen ] Salutje veux savoir est-ce-que quand un serveur accepte la demande de son logiciel client, est-ce-qu'il accepte en meme temps toutes communication ave Pb de fermeture d'une appli avec C# [ par rmaj ] Bonjour,Mon problème est le suivant : mon application gère, au moyen d'un thread, la communication entre un serveur et un client. En réalité, le serve


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.