begin process at 2010 02 10 06:51:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Réseau & Internet

 > 

Sockets

 > 

Re-connexion à un socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Re-connexion à un socket

dimanche 25 mars 2007 à 19:05:09 | Re-connexion à un socket

Micro_and_Macro

Bonjour , j'ai programmé un client en C# .net..
A la première connexion sur le serveur, aucun problème notable.

Resultat de netstat -n -o 2 :

  TCP    127.0.0.1:1690         127.0.0.1:65133        ESTABLISHED     3552
  TCP    127.0.0.1:65133        127.0.0.1:1690         ESTABLISHED     1260

Première déconnexion : le serveur se met à prendre 99% des ressources du cpu

Après la deuxième connexion, le serveur n'éxecute plus les commandes du client ,
  TCP    127.0.0.1:1690         127.0.0.1:65133        ESTABLISHED     3552
  TCP    127.0.0.1:65133        127.0.0.1:1690         ESTABLISHED     1260

Pour les tentatives de connexions suivantes le serveur refuse la connexion
  TCP    127.0.0.1:1705         127.0.0.1:65133        FIN_WAIT_2      1500
  TCP    127.0.0.1:65133        127.0.0.1:1705         CLOSE_WAIT      3032

Le problème ne vient pas du serveur car avec des clients vb6 ou telnet , tout fonctionne correctement.

Une personne ayant le même problème : [ Lien ]
Voici la procédure de connexion:

Boolean essaiconnec(string IP,string port)
        {
            try
            {
                int myport=System.Convert.ToInt32(port);
                if (Mymodule.ClientSocket == null)
                {
                    Mymodule.ClientSocket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                }
                 Mymodule.ClientSocket.Connect(IP, myport);
                //this.envoicommande("/dummy command");
                return true;
            }
            catch (Exception myexception)
            {

                MessageBox.Show(myexception.ToString());
                return false;
            }
Voici ma procédure de déconnexion :

private void déconnexionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.envoicommande("/kill");
            if (Mymodule.ClientSocket.Connected)
            {
                Mymodule.ClientSocket.Shutdown(SocketShutdown.Both);
                Mymodule.ClientSocket = null;
                 pictureBox1.BackColor = System.Drawing.Color.Red;
                label3.Text = "Déconnecté";
                tab.Enabled = false;
                timer1.Stop();
            }
        }

Voyez-vous une erreur dans mon code ??
D'avance merci



 


 
mardi 27 mars 2007 à 23:00:05 | Re : Re-connexion à un socket

ShareVB

salut,

la méthode shutdown permet de fermer les flux d'envoi et de réception...ce qui ne correspond absolument pas à une fermeture du socket lui-même...de plus, mettre ton socket à null ne libère pas les ressources de ton objet socket avant le passage au gc (et encore, je ne suis pas certain que le destructeur appelle close)...

ce que tu devrais faire :
-> appelle la méthode close de networkstream
-> puis la méthode close de ton socket

ShareVB
mercredi 28 mars 2007 à 18:06:29 | Re : Re-connexion à un socket

Micro_and_Macro

Salut,
La methode close du socket n'apparait pas sur l'exemple , erreur de copier/coller..
Par contre je vois pas du tout comment appeler la méthode close de networkstream,sachant que je vois pas comment récuperer le stream, pas réussi à appeler getStream..
Je vais changer de tactique et utiliser la classe tcpclient pour voir .
@++


 


 
jeudi 29 mars 2007 à 20:54:47 | Re : Re-connexion à un socket

ShareVB

Réponse acceptée !
salut,

tu peux construire un networkstream à partir d'un socket ou dérivée...

networkstream ns = new networkstream(ton_socket);
//utilisation
ns.close();

et pas de shutdown...


ShareVB
dimanche 1 avril 2007 à 14:28:07 | Re : Re-connexion à un socket

Micro_and_Macro

Ok merci, je testerai dans la semaine si possible, je donne des news dès que possible..

 


 
mercredi 4 avril 2007 à 19:49:12 | Re : Re-connexion à un socket

Micro_and_Macro


ok vraiment pas moyen de se reconnecter au socket ,le problème vient surement du serveur
merci.

 


 


Cette discussion est classée dans : serveur, connexion, tcp, clientsocket, mymodule


Répondre à ce message

Sujets en rapport avec ce message

Connexion à un serveur UNIX... [ par shervy ] Bonjour,Je n'arrive pas à me connecter à un serveur UNIX.Voilà ce que j'utilise :IPAddress myIP = IPAddress.Parse("127.12.4.9");TcpClient tcpClient = Connexion BD Access externe [ par Armis ] Salut à tous,Mon problème est le suivant:J'ai un formulaire web qui enregistre des informations utilisateurs dans une BD Access (Rien de très confiden Connexion à un serveur ftp [ par Fildomen ] salutje veux faire un prog qui se connecte à un serveur ftp (comme "ftp.multimania.fr"), et j'efface un fichier la dedans nomé "xx.txt", et je upload Etablir une connexion Tcp/Client [ par Fildomen ] SalutPouvez-vous me donner un example d'une connexion tcp/client avec le c# 2005???c très compliqué que le c# 2003.merci Probleme de connexion à un serveur SQL 2000 [ par Online ] Bonjour, voici mon probleme:Ma ligne de code: SqlCeConnection myconn = new SqlCeConnection("data Connexion serveur [ par samsamsimo ] Bonjour, voila je programme en c#et j'aimerai savoir comment je peux faire pour me connecter a ma base de données Access sur une autre machine par OL Problème TCP [ par Fildomen ] Salutj'ai créer un serveur en utilisant le protocole(je sais pas ce que vous l'appeler) Tcp, mais quand je passe au développement du client, le problè Ca rame sévère ! [ par billou_13 ] Voila, g fait un programme serveur en utilisant les NetworkStream et je c pas pourquoi, dès qu'il y a 3 clients minimum, le serveur se met a ramer sév connexion a une base HYPER FILE par un serveur distant [ par grandnello ] Bonjour ,Je suis en stage en entreorise et je dois connecter une base HYPER FILE WINDEV 5.5 a un serveur distant soit en PAGE ASP , soit en language W Monter un serveur chez soi [ par Fildomen ] Salutest-ce-que c suffisant de consacré une ligne adsl 1024/512 et un pc P4 3.6gh 512 de ram à un serveur TCP qui doit gérer un nombre important de co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales