Systeme de messagerie [Résolu]

lamia0afifa 16 Messages postés samedi 24 novembre 2007Date d'inscription 1 janvier 2008 Dernière intervention - 4 déc. 2007 à 16:11 - Dernière réponse : lamia0afifa 16 Messages postés samedi 24 novembre 2007Date d'inscription 1 janvier 2008 Dernière intervention
- 5 déc. 2007 à 19:02
Hello! "svp aidez _nous"
nous sommes des etudiantes spécialité reseau informatique , notre projet a pour théme "systeme de messagerie " c'est une application qui doit permette à des utilisateur de se connecter via Login et mot de passe ces derniers seront stockés dans une base de donnée Access. Le code source sera avec c# et la communication Client/Serveur via La technologie .net Remoting.Ainsi cette application permet d'envoyer des messages instantanés entre les users et,des news et télécharger des fichiers partagés.Donc svp nous sommme bloqués sur la programmation d'envoie de news et de téléchargement de fichiers partagés veuillez nous aider à résoudre notre probléme en nous envoyez un exemple de  code source d'envoie d'un news et de téléchargement de fichier et merci pour votre aide!!!!!! 
Afficher la suite 

Votre réponse

6 réponses

lamia0afifa 16 Messages postés samedi 24 novembre 2007Date d'inscription 1 janvier 2008 Dernière intervention - 5 déc. 2007 à 19:02
+3
Utile
Hello,
voici mon code de nouveau j'ai suivis vos renseignement mais j'ai eu une faute que j'ai pas compris"Attempted to create well-known object of type 'IMessage.IAUT'. Well-known objects must derive from the MarshalByRefObject class." au niveau du client :bool

b = a.verifier(textBox1.Text,textBox2.Text);

//code coté client remoting
using

System.Windows.Forms;
using

IMessage;
using

System.Runtime.Remoting;
using

System.Runtime.Remoting.Services;
using

System.Threading;
using

System.Configuration;
namespace

ClientWindows{

public
partial
class
connexion :
Form{

private IMessage.
IAUT a;

public
string user;

public connexion(){

InitializeComponent();

}

private
void button1_Click(
object sender,
EventArgs e){

if (a !=
null){

bool b = a.verifier(textBox1.Text,textBox2.Text);

if (b ==
true){

user = textBox1.Text;

this.DialogResult =
DialogResult.OK;

this.Close();}

else

MessageBox.Show(
"Utilisateur /Mot de passe incorrecte");}

}

private
void connexion_Load(
object sender,
EventArgs e){

try{

RemotingConfiguration.Configure(
"Client.config",
false); 

}

catch (
Exception ex){

MessageBox.Show(ex.Message);}

a = (IMessage.

IAUT)
Activator.GetObject(
typeof(IMessage.
IAUT),
"tcp://localhost:8080/AUTENTIFICATION"); 

}

}

}
//code coté interface remoting IMessage

using

System;
using

System.Collections.Generic;
using

System.Text;
namespace

IMessage{

//d‚l‚gu‚ de l'‚v‚nnement OnMsgEnvoi

[

Serializable]

public
delegate
void
EnvoiMsgEventHandler(
string strUser,
string strMsg);

public
interface
IAUT{

bool verifier(
string u,
string p);}
}
//code coté serveur Remoting

using

System;
using

System.Collections.Generic;
using

System.Text;
using

System.ComponentModel;
using

IMessage;
using

System.Data.OleDb;
using

System.Data;
using

System.Runtime.Remoting;
namespace

Serveur{

public
class
AUT :
MarshalByRefObject, IMessage.
IAUT{

public
override
object InitializeLifetimeService(){

return
null;}

public
bool verifier (
string u,
string p){

bool resultat =
false;

DataSet ds =
new
DataSet();

DataTable dt =
new
DataTable(
"utilisateur");

OleDbConnection cx =
new
OleDbConnection(
"Provider=Microsoft.JET.OleDB.4.0; Data Source = Actel.mdb ");

OleDbDataAdapter da =
new
OleDbDataAdapter(
"SELECT user.Login, user.Password, user.Nom, user.Prenom,user.Grade,user.Etat FROM user;", cx);

OleDbCommandBuilder o =
new
OleDbCommandBuilder(da);ds.Tables.Add(dt);

da.Fill(ds,

"utilisateur");

for (
int i = 0; i < dt.Rows.Count; i++){

if ((dt.Rows[i].ItemArray[i].ToString() == u) && (dt.Rows[i].ItemArray[1].ToString() == p))resultat =

true;}

return (resultat);

}

}

}
//aussi

using

System;
using

System.Runtime.Remoting;
using

System.Runtime.Remoting.Services;
using

System.Threading;
namespace

Serveur{

class
Program{

static
void Main(
string[] args){

try{

Console.WriteLine(
"demarrage du seveur");

RemotingConfiguration.Configure(
"Server.config",
false);

Console.ReadLine();

RemotingConfiguration.RegisterWellKnownServiceType(

typeof(
AUT),

"AUTENTIFICATION",

WellKnownObjectMode.SingleCall);}

catch (
Exception ex){

Console.WriteLine(ex.Message);

Console.ReadLine();}

}

}

}
SVP aidez moi à résoudre cette faute le plus vite pour avancer dans mon projet de fin d'étude et merci bien!!!!!!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lamia0afifa
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 4 déc. 2007 à 16:16
0
Utile
"etudiantes spécialité reseau informatique" -> j'en conclus que vous avez donc eu des cours sur le sujet et que donc vous ne demandez pas un code tout fait, mais simplement un peu d'aide parce que vous bloquez sur un point particulier... Si c'est le cas, il suffit de nous expliquer où ça coince.

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
Commenter la réponse de Nikoui
lamia0afifa 16 Messages postés samedi 24 novembre 2007Date d'inscription 1 janvier 2008 Dernière intervention - 5 déc. 2007 à 15:16
0
Utile
salu,
 nous voullons le code source de envoyer news et de télécharger un fichier partagé en utilisant c# et le .NetRemoting que nous ne les avons jammais programmer avec. SVP envoyez nous le plus vite possible car notre sujet doit se terminer dans 20 jours. ET MERCI POUR VOTRE AIDE!!!!!!
Commenter la réponse de lamia0afifa
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 5 déc. 2007 à 15:26
0
Utile
Je vous invite à lire le règlement, vous y verrez notament qu'on ne vient pas ici pour réclamer du code tout fait. C'est un peu dommage d'avoir choisi ce sujet si vous n'y connaissez rien, et de s'en rendre compte 20 jours avant l'échéance.

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
Commenter la réponse de Nikoui
lamia0afifa 16 Messages postés samedi 24 novembre 2007Date d'inscription 1 janvier 2008 Dernière intervention - 5 déc. 2007 à 16:09
0
Utile
salu,
voici notre code qu'on travaille ci dessus. lors de l'exécution :

using



System;


using



System.Collections.Generic;


using



System.Text;


namespace



IMessage{



//d‚l‚gu‚ de l'‚v‚nnement OnMsgEnvoi




[




Serializable
]


public



delegate



void



EnvoiMsgEventHandler
(

string
strUser,

string
strMsg);


public



class



IAUT
:

MarshalByRefObject

{







public



bool
verifier(

string
u,

string
p);}// coté interface remoting

using


System;


using



System.Collections.Generic;


using



System.Text;


using



System.ComponentModel;


using



IMessage;


using



System.Data.OleDb;


using



System.Data;


using



System.Runtime.Remoting;


namespace



Serveur{


public



class



AUT
:

MarshalByRefObject
, IMessage.IAUT{


public



override



object
InitializeLifetimeService(){


return



null
;}

 


public



bool
verifier(

string
u,

string
p){


bool
resultat =

false
;


DataSet
ds =

new



DataSet
();


DataTable
dt =

new



DataTable
(

"utilisateur"
);


OleDbConnection
cx =

new



OleDbConnection
(

"Provider=Microsoft.JET.OleDB.4.0; Data Source = Actel.mdb "
);


OleDbDataAdapter
da =

new



OleDbDataAdapter
(

"SELECT user.Login, user.Password, user.Nom, user.Prenom,user.Grade,user.Etat FROM user;"
, cx);


OleDbCommandBuilder
o =

new



OleDbCommandBuilder
(da);ds.Tables.Add(dt);

da.Fill(ds,


"utilisateur"
);


for
(

int
i = 0; i < dt.Rows.Count; i++){


if
((dt.Rows[i].ItemArray[i].ToString() == u) && (dt.Rows[i].ItemArray[1].ToString() == p))resultat =


true
;}


return
(resultat);

}

}

}//coté serveur Remoting

using


System;


using



System.Collections.Generic;


using



System.ComponentModel;


using



System.Data;


using



System.Drawing;


using



System.Text;


using



System.Windows.Forms;


using



IMessage;


using



System.Runtime.Remoting;


using



System.Runtime.Remoting.Services;


using



System.Threading;


using



System.Configuration;


namespace



ClientWindows{


public



partial



class



connexion
:

Form

{







private
IMessage.

IAUT
a;


public



string
user;


public
connexion(){

InitializeComponent();

}

 


private



void
button1_Click(

object
sender,

EventArgs
e){


if
(a !=

null
){


bool
b = a.verifier(textBox1.Text, textBox2.Text);


if
(b ==

true
){

user = textBox1.Text;


this
.DialogResult =

DialogResult
.OK;


this
.Close();}


else






MessageBox
.Show(

"Utilisateur /Mot de passe incorrecte"
);}

}


private



void
connexion_Load(

object
sender,

EventArgs
e){


try

{







RemotingConfiguration
.Configure(

"Client.config"
,

false
); 

}


catch
(

Exception
ex){


MessageBox
.Show(ex.Message);}

a = (IMessage.


IAUT
)

Activator
.GetObject(

typeof
(IMessage.

IAUT
),

"tcp://localhost:8080/AUTENTIFICATION"
); 

}

}

}//coté client remoting

voici le messeage d'erreur :"Error  'IMessage.IAUT.verifier(string, string)' must declare a body because it is not marked abstract or extern "
SVP qu'est ce que ca signifie car nous ne l'avons pas compris. MERCI pour votre aide.
Commenter la réponse de lamia0afifa
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 5 déc. 2007 à 17:33
0
Utile
Comme l'indique le message d'erreur, dans ton code "côté interface remoting", tu déclares dans une classe :

public
bool verifier(
string u,
string p);

Ce qui n'est pas correct (une méthode non abstraite doit avoir un corps).

Vu que tu es "côté interface remoting", cette classe devrait plutôt être une interface (et dans ce cas tu ne déclare pas de corps, juste le prototype de la méthode).

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
Commenter la réponse de Nikoui

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.