Je construis un client IRC dans la nouvelle structure WinRT (.NET 4.5
) pour les applications Windows 8 Metro.WinRT - Clients TCP?
Cependant, j'ai quelques problèmes. J'ai déjà compris que je devais utiliser un StreamSocket
pour lire les données TCP, mais je peux faire quelque chose de mal.
La raison pour laquelle je crois que c'est parce que je ne reçois aucune donnée.
Ci-dessous vous voyez mon code. Je n'ai pas été en mesure de trouver des exemples de code sur le web à ce sujet.
class IRCClient
{
private StreamSocket tcpClient;
public string Server = "holmes.freenode.net";
public int Port = 6665;
public IRCClient()
{
tcpClient = new StreamSocket();
}
public async void Connect()
{
await tcpClient.ConnectAsync(
new Windows.Networking.HostName(Server),
Port.ToString(),
SocketProtectionLevel.PlainSocket);
DataReader reader = new DataReader(tcpClient.InputStream);
string data = reader.ReadString(reader.UnconsumedBufferLength);
MessageDialog dialog = new MessageDialog(data);
}
}
Les données sont toujours une chaîne vide suivant ce code. En outre, UnconsumedBufferLength renvoie toujours 0.
Comment?
pensée aléatoire; avez-vous essayé les méthodes asynchrones? peut-être qu'ils veulent utiliser async? –
Oui, rien n'est encore reçu au moment de la connexion. Vous allez devoir appeler ReadAsync() sur le InputStream. –
Désolé, juste une supposition cul sauvage, mais n'est pas IRC nécessite une connectivité UDP multicast? – Haspemulator