Autor Beitrag
Mr.y
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 07.07.10 08:27 
Hallo, ich habe mich vor 1 einer woche angefangen mit wcf zu beschäftigen, grundlegende Sache wie: verbindung zwischen Client und Hoster hab ich hinbekommen
jetzt will ich eine nachricht senden:)
und das klappt nicht


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
public partial class Form1 : Form, ServiceReference.IHostFunctionsCallback
    {   //IHostFunctionsCallback bietet die Möglichkeit von der IHostfunctions funktionen für callback zu nutzen
        ServiceReference.HostFunctionsClient clsClient = null;//bietet Zugriff auf den Host
        public Form1()
        {

            InitializeComponent();

            InstanceContext clsContext = new InstanceContext(this);

            clsClient = new ServiceReference.HostFunctionsClient(clsContext);

        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                clsClient.Connect();//Host anrufen; klappt

            }
            catch (Exception ex)
            {

                txtChat.Text = ex.Message;
            }
        }

        private void btnDisconnect_Click(object sender, EventArgs e)
        {
            try
            {
                clsClient.Disconnect();

            }
            catch (Exception ex)
            {

                txtChat.Text = ex.Message;
            }

        }

        private void btnSenden_Click(object sender, EventArgs e)
        {
            DataBibliothek.ChatMessage clsMessage = new DataBibliothek.ChatMessage();

            clsMessage.pName = txtName.Text.ToString();
            clsMessage.pMessage = txtMessage.Text.ToString();

            if (clsClient.State == CommunicationState.Opened)
            {
                       clsClient.Send(clsMessage); //FEHLER, Die Methode oder der      Vorgang sind nicht implementiert.

            }

        }

clsClient ist eine Instanz von einem Dienstverweis des Contracts, der so aussieht:
Dienstverweis funktioniert, da er ja verbindet....und der hoster meldet, dass client verbunden ist und status ist auf "opened"


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
[ServiceContract(CallbackContract= typeof(IClientFunctions))]//"Verknüpfung" mit dem Client-Interface
    public interface IHostFunctions
    {
        [OperationContract]
        void Connect();//kann vom Client genutzt werden für die Anmeldung beim Host

        [OperationContract]
        void Disconnect();//kann vom Client genutzt werden für die Anmeldung beim Host

        [OperationContract]
        void Send(ChatMessage clsMessage); //Client sendet ein Objekt(ChatMessage) an den Host

    }


ich meine....ich verbinde mich mit der selben clsClient.connect() und es geht
dann etwas später....clsClient.send....oder auch direckt nach clsClient.connect() und er sagt aufeinmal: nicht imeplementiert
Brauche Hilfe :(
Danke im Voraus

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 12.07.10 08:32 
Moin,

was ist denn das für eine Klasse, ServiceReference.HostFunctionsClient? Wirklich gut dokumentiert ist die Klasse ja nicht...

Was spricht gegen TcpClient und TcpListener? Darüber findest du im MSDN viel, auch umfangreiche Beispiele. Wenn du dazu eine Frage hast, kann ich dir auch helfen; damit hab ich auch schon gearbeitet.

Grüße,
Yogu

Mein 2000. Beitrag :party:

Für diesen Beitrag haben gedankt: BLR, Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mo 12.07.10 11:38 
Danke für deine Hilfe :)

habs schon hinbekommen, es lag einfach an dem Dienstverweis, denn ich gemacht hab.
Irgendwie hat er da paar Funktionen doppelt eingetragen...
Habs noch mal neu erstellt und es ging...