Betrachten Sie den Fall eines LAN-Boten, wo eine Reihe von Menschen online sind. Ich muss eine bestimmte Person auswählen, mit der ich chatten möchte. Wie muss ich in C# vorgehen? Ich möchte eine bestimmte Person auswählen, indem ich auf seinen Namen klicke. Danach muss alles, was ich tippe, gesendet werden, genau wie im Fall der IP Lanmessenger Software (in der Hoffnung, dass man sie benutzt). Konnte jemand mir helfen.ThanksWählen Sie eine Person mit C in Chat #
Antwort
Wenn Sie die Benutzeroberfläche für einen Chat erstellen und Sie alle Menschen online sehen möchten, wäre das typische UI-Element ein Listenfeld und dann Code, der auf dem On_Click eines Elements ausgelöst wird in der BOx. Dieser Code könnte ein anderes UI-Element zum Starten des Chats öffnen.
Das Abrufen der Liste der angemeldeten Benutzer ist schwieriger. Sie müssen eine Art Observer/Subscriber-Muster implementieren, um Benachrichtigungen aus dem von Ihnen implementierten Chat-Protokoll zu verarbeiten.
GeekPedia hat eine großartige Serie auf creating a chat client and server in C#.
Können Sie mir bitte den Namen des Ereignisses mitteilen, das ausgelöst wird, wenn auf ein Element in der Listbox geklickt wird. Ich weiß, dass der Name des Ereignisses auf dem Code On_Click sein soll, aber wie lautet der Name in der Ereignisliste in der Eigenschaften-Symbolleiste? Danke – Avik
Ich glaube nicht, dass Sie On_Click wollen, wahrscheinlich möchten Sie SelectedIndexChanged. –
Wenn Sie die Benutzer verfolgen wollen, empfehle ich, eine Serveranwendung zu codieren, die alle Verbindungen verarbeitet. Hier ist ein kurzes Beispiel (beachten Sie, dies ist kein komplettes Beispiel):
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
private TcpListener tcpListener;
private Thread listenerThread;
volatile bool listening;
// Create a client struct/class to handle connection information and names
private List<Client> clients;
// In constructor
clients = new List<Client>();
tcpListener = new TcpListener(IPAddress.Any, 3000);
listening = true;
listenerThread = new Thread(new ThreadStart(ListenForClients));
listenerThread.Start();
// ListenForClients function
private void ListenForClients()
{
// Start the TCP listener
this.tcpListener.Start();
TcpClient tcpClient;
while (listening)
{
try
{
// Suspends while loop till a client connects
tcpClient = this.tcpListener.AcceptTcpClient();
// Create a thread to handle communication with client
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleMessage));
clientThread.Start(tcpClient);
}
catch { // Handle errors }
}
}
// Handling messages (Connect? Disconnect? You can customize!)
private void HandleMessage(object client)
{
// Retrieve our client and initialize the network stream
TcpClient tcpClient = (TcpClient)client;
NetworkStream clientStream = tcpClient.GetStream();
// Create our data
byte[] byteMessage = new byte[4096];
int bytesRead;
string message;
string[] data;
// Set our encoder
ASCIIEncoding encoder = new ASCIIEncoding();
while (true)
{
// Retrieve the clients message
bytesRead = 0;
try { bytesRead = clientStream.Read(byteMessage, 0, 4096); }
catch { break; }
// Client had disconnected
if (bytesRead == 0)
break;
// Decode the clients message
message = encoder.GetString(byteMessage, 0, bytesRead);
// Handle the message...
}
}
nun wieder beachten Sie dies nicht ein vollständiges Beispiel ist, und ich weiß, dass ich irgendwie alle auf das ging, aber ich hoffe, das gibt Ihnen ein Idee. Der Nachrichtenteil in der HandleMessage-Funktion kann die Benutzer-IP-Adresse sein, wenn sie eine Verbindung mit dem Chat-Server/Trennen herstellen, und anderen Parametern, die Sie angeben möchten. Dies ist Code, der aus einer Anwendung stammt, die ich für die Firma meines Vaters geschrieben habe, damit sich die Mitarbeiter gegenseitig direkt aus dem benutzerdefinierten CRM, das ich geschrieben habe, melden können. Wenn Sie weitere Fragen haben, kommentieren Sie bitte.
- 1. Ermitteln Sie eine Person aus der Kamera
- 2. Wählen Sie aus einer Tabelle eine wahrheitsgemäße IF-Bedingung, wählen Sie eine andere unter FALSE aus?
- 3. C# - Wählen Sie XML-Nachkommen mit Linq
- 4. Person <Person>, was ist <Person>?
- 5. Chat-Client in C? (C-Netzwerk-Programmierung)
- 6. Wählen Sie eine Zeile
- 7. Cherry-Wählen Sie eine Zusammenführung
- 8. eine Chat-Aktivität in android
- 9. Ändern Sie localName einer Person mit Jena
- 10. wählen Sie neue in linq C#
- 11. Fügen Sie einen Benutzernamen zu Server/Client Chat in C#
- 12. Wählen Sie eine Option mit jQuery-select2
- 13. Wählen Sie Zeilen mit JOIN eine Unterabfrage
- 14. Split Person [0] .email in ['Person', '0', 'E-Mail']
- 15. Wählen Sie die erste, zweite und dritte Zeile für jede Person in Access
- 16. von und wählen Sie in C# .net?
- 17. eine E-Mail Wählen Sie AccountPicker.newChooseAccountIntent mit
- 18. So wählen Sie eine Zip-Datei mit JFileChooser in Java
- 19. Wählen Sie Fenster mit C- <number> in tmux
- 20. C# + Crystal Reports + Wählen Sie Expert für nur eine Box?
- 21. Wählen Sie * aus Wählen Sie
- 22. Erstellen Sie VOIP-Chat-Anwendung mit Socket.IO
- 23. wie wählen Sie 2 wählen Sie Statements in VBA-Skripten
- 24. html Wählen Sie eine Option in eine Liste
- 25. Machen Sie einen Web-Chat mit twisted
- 26. Wählen Sie nur eine in dynamischem Optionsfeld
- 27. Extrahieren Tupel mit 'PERSON' in Stanforner Listenergebnis
- 28. Wählen Sie eine neue Entwicklungsmaschine
- 29. Symfony2 Wählen Sie eine Spalte in Doktrin
- 30. Wählen Sie Daten aus der Tabelle
Es hängt von so vielen Parametern ab, wie z. B. von welcher Steuerung Sie die Liste der Benutzer anzeigen, wie Sie die Kommunikation zwischen Clients implementiert haben und vieles mehr. Ich denke, dass Sie einige Details geben müssen, um einige gute Antworten zu erhalten. –