Estoy creando un cliente de IRC en el nuevo marco de WinRT (.NET 4.5
) para las aplicaciones de Metro de Windows 8.WinRT - clientes TCP?
Sin embargo, tengo algunos problemas. Ya he descubierto que necesito usar un StreamSocket
para leer datos TCP, pero puedo estar haciendo algo mal.
La razón por la que creo esto es porque no recibo ningún dato.
A continuación, vea mi código. No he podido encontrar ningún ejemplo de código en la web con respecto a esto.
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);
}
}
Los datos son siempre una cadena vacía siguiendo ese código. Además, UnconsumedBufferLength siempre devuelve 0.
¿Cómo es posible?
pensamiento aleatorio; ¿Has probado los métodos asíncronos? tal vez ellos quieren usar asincrónico? –
Sí, no se recibió nada aún cuando se realizó la conexión. Tendrás que llamar a ReadAsync() en InputStream. –
Lo siento, solo una conjetura salvaje, pero ¿no es IRC requiere conectividad UDP multicast? – Haspemulator