[C#] Connexion par socket en mode Asynchrone (server)
Connexion par socket en mode Asynchrone (server) [C#] - C#/.NET managed - Programmation
MarshPosté le 24-01-2005 à 16:34:08
Bonjour !
Je suis en train de programmer un simple serveur qui me permetrais de me connecter en Asynchrone à un client. Mais voilà, la fonction beginconnect() me retourne une erreur : System.Net.Sockets.SocketException, Aucune connexion n'a pu être établie car l'ordinateur cible l'a exprécément refusé
Je ne comprend pas d'ou vient cette erreur, puisqu'il n'y a pas de firewall ni sur le serveur, ni sur le client.
voici mon code pour le serveur (le client se fait par l'hyperterminal) :
Main Code:
int port = GetServerPort(); IPAddress ipaddresslocal = GetServerAddress();
MyNetworkManager manager = new MyNetworkManager(ipaddresslocal, port);
manager.Connected += new EventHandler(OnConnectDone); manager.ConnectionFailed += new EventHandler(OnManagerConnectionFailed);
manager.Connect();
Classe MyNetworkManager Code:
using System; using System.Net; using System.Net.Sockets; using System.Windows.Forms;
public class MyNetworkManager { public event EventHandler Connected; public event EventHandler ConnectionFailed;
public MyNetworkManager(IPAddress address, int port) { _serverEndPoint = new IPEndPoint(address, port); }
public void Connect() { _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _socket.BeginConnect(_serverEndPoint, new AsyncCallback(ConnectDone), null); }
Marsh Posté le 24-01-2005 à 16:34:08
Bonjour !
Je suis en train de programmer un simple serveur qui me permetrais de me connecter en Asynchrone à un client. Mais voilà, la fonction beginconnect() me retourne une erreur : System.Net.Sockets.SocketException, Aucune connexion n'a pu être établie car l'ordinateur cible l'a exprécément refusé
Je ne comprend pas d'ou vient cette erreur, puisqu'il n'y a pas de firewall ni sur le serveur, ni sur le client.
voici mon code pour le serveur (le client se fait par l'hyperterminal) :
Main
Code:
int port = GetServerPort();
IPAddress ipaddresslocal = GetServerAddress();
MyNetworkManager manager = new MyNetworkManager(ipaddresslocal, port);
manager.Connected += new EventHandler(OnConnectDone);
manager.ConnectionFailed += new EventHandler(OnManagerConnectionFailed);
manager.Connect();
Classe MyNetworkManager
Code:
using System;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
public class MyNetworkManager
{
public event EventHandler Connected;
public event EventHandler ConnectionFailed;
private Socket _socket;
private IPEndPoint _serverEndPoint;
public MyNetworkManager(IPAddress address, int port)
{
_serverEndPoint = new IPEndPoint(address, port);
}
public void Connect()
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.BeginConnect(_serverEndPoint, new AsyncCallback(ConnectDone), null);
}
private void ConnectDone(IAsyncResult result)
{
try
{
_socket.EndConnect(result);
OnConnectDone();
// Start async reading...
}
catch(Exception e )
{
MessageBox.Show(e.ToString());
OnConnectionFailed();
}
}
private void OnConnectDone()
{
if(Connected != null)
Connected(this, new EventArgs());
}
private void OnConnectionFailed()
{
if(ConnectionFailed != null)
ConnectionFailed(this, new EventArgs());
}
}
Comment faire pour régler cette erreur ????
Merci d'avance pour vos réponses.