2009-12-04 4 views
0

J'ai écrit le programme suivant qui est supposé démarrer, afficher le formulaire et se connecter au serveur et obtenir un message. Cependant, quand je commence, rien ne se passe?C# Programme de chat Lidgren

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using Lidgren.Network; 
using System.Threading; 

namespace WindowsGame2 
{ 
    public partial class Form1 : Form 
    { 
     private NetClient client; 
     private NetBuffer buffer; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Connect() 
     { 
      NetConfiguration config = new NetConfiguration("xesh"); 
      NetClient client = new NetClient(config); 

      client.Connect("75.127.105.216", 14242); 

      NetBuffer buffer = client.CreateBuffer(); 
     } 

     private void ReceiveMessages() 
     { 
      Connect(); 
      bool keepGoing = true; 
      while (keepGoing) 
      { 
       NetMessageType type; 
       while (client.ReadMessage(buffer, out type)) 
       { 
        switch (type) 
        { 
         case NetMessageType.DebugMessage: 
          Console.WriteLine(buffer.ReadString()); 
          break; 

         case NetMessageType.StatusChanged: 
          Console.WriteLine("New status: " + client.Status + " Reason: " + buffer.ReadString()); 
          break; 

         case NetMessageType.Data: 
          break; 
        } 
       } 
      } 
     } 

     private void Update(string str) 
     { 
      ReceiveMessages(); 
      textBox1.AppendText(str + "\r\n"); 
     } 

     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 

     } 

     static void Main(string[] args) 
     { 
      Form1 form = new Form1(); 
     } 
    } 
} 
+1

Vous ne semblez pas appeler les méthodes ReceiveMessages ou Update? – stuartd

+0

Quels contrôles sont dans le formulaire, comment le InitializeComponent() look? – Jocke

Répondre

1

Vous n'appelez pas vos méthodes.

essayer:

static void Main(string[] args) 
{ 
    Form1 form = new Form1(); 
    ReceiveMessages(); 
    // or 
    Update("Me"); 
} 

Avez-vous des boutons sur votre formulaire? Kinda besoin d'un peu plus d'informations

2

Vous avez déclaré:

private NetClient client;   
    private NetBuffer buffer; 

Cependant votre Connect() méthode construit nouvelle client et locale tampon qui sera hors de portée lorsque la méthode retourne. Les fichiers et du tampon de l'instance ne sont jamais initialisés et ne sont donc pas significatifs lorsqu'ils sont utilisés dans la méthode ReceiveMessages().