Problème avec ma connection TcpClient

nclscartman Messages postés 5 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 26 juin 2009 - 17 oct. 2008 à 20:36
nclscartman Messages postés 5 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 26 juin 2009 - 19 oct. 2008 à 17:23
Bonjour, j'ai développé une boite de reception (Mail) avec différentes options :
reception de mail
envoi de mail
répertoire de contact
ect..
Mais je rencontre un probléme, j'arrive à me connecté au serveur TCP en local, mais une fois transféré sur le serveur web une erreur s'affiche :


System.Net.Sockets.SocketException: Une opération a été tentée sur un hôte impossible à atteindre

Je voudrais donc savoir si quelqu'un a rencontré ce problème, et savoir comment il a résolu ce problème.

Merci pour l'aide ou la solution que vous allez m'apporter.

Ci-dessous mon code asp.net c# pour me connecter :
public

class
Pop3 :
TcpClient
{
public

void OpenConnection(
string server,
string username,
string password)
{

      string message;

      string response;

      this.Connect(server, 110);
      response =
this.Response();

      if (response.Substring(0, 3) !=
"+OK")
      {
      
      throw
new
Pop3Exception(response);
      }      message =

"USER " + username +
"\r\n";

      this.Write(message);
      response =
this.Response();

      if (response.Substring(0, 3) !=
"+OK")
      {
            
throw
new
Pop3Exception(response);
      }      message =

"PASS " + password +
"\r\n";

      this.Write(message);
      response =
this.Response();

      if (response.Substring(0, 3) !=
"+OK")
      {
            
throw
new
Pop3Exception(response);
      }   
}

private
void Write(
string message)
{
      
byte[] WriteBuffer =
new
byte[1024];
      WriteBuffer = System.Text.
Encoding.ASCII.GetBytes(message);

      NetworkStream stream =
this.GetStream();
      stream.Write(WriteBuffer, 0, WriteBuffer.Length);
}

private
string Response()
{
      
byte[] serverbuff =
new
Byte[1024];
      
NetworkStream stream =
this.GetStream();
      
int count = 0;

      while (
true)
      {

            byte[] buff =
new
Byte[2];

            int bytes = stream.Read(buff, 0, 1);

            if (bytes == 1)
            {
                  serverbuff[count] = buff[0];
                  count++;

                  if (buff[0] ==
'\n')
                  {

                        break;
                  }
            }

            else
            {

                  break;
            };
       };

      string retval = System.Text.
Encoding.ASCII.GetString(serverbuff, 0, count);

      return retval;
}

}

4 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
17 oct. 2008 à 23:40
Bonsoir,
Ton serveur web passe t-il par un proxy ?
nclscartman Messages postés 5 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 26 juin 2009
18 oct. 2008 à 00:19
Merci d'avoir répondu !

D'après les renseignements que j'ai pu recueillir, en effet le serveur passe par un proxy !! Du coup l'erreur est peut être du au firewall du proxy qui bloque ma connection !!!

tu en penses en quoi ?

merci
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
18 oct. 2008 à 00:50
Je pense que tu dois te connecter à ton proxy avec la classe TcpClient().
Puis une fois connecté à ton proxy envoi lui les commandes dîtes "http proxy" appropriés afin de récupérer sa réponse (NetworkStream)
(renseigne toi sur ton proxy pour connaîtres les commandes http proxy qu'il fournit pour l'attaquer).

Je ne vois pas d'autres solutions. Bonne chance

++
nclscartman Messages postés 5 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 26 juin 2009
19 oct. 2008 à 17:23
Merci, pour ton conseil, j'ai essayé et sans succès !

j'ai pris contact avec mon hébergeur le port 110 que j'utilise pour me connecter n'est pas ouvert. ils m'ont conseillé le port 25 ! Et le serveur n'utilise pas de proxy, ils m'ont confirmé ! les infos que j'avais trouvé, c'était du n'importe quoi !

J'ai donc reconfiguré mon code pour le port 25 et une autre erreur apparait  : 220 mail.sphere-hosting.com !
(sphere-hosting étant mon hébergeur asp.net 2.0)

Faute de connexion maintenant  !! je ne vois plus trop ce que je peux faire !
Rejoignez-nous