Tout d'abord, merci à Etienne qui m'a guidé vers l'utilisation de
TcpClient pour lire les newsgroups, mais je suis à nouveau coincé (faut
dire, je débute). Dans le code ci-dessous je me connecte à un serveur de
news (c'est OK), je demande un certain groupe de discussion puis
j'essaye à nouveau de lire ce que je reçois et là, ça bloque (il reste
indéfiniment sur NWS.Read(...)). Le second MsgBox devrait renvoyer
quelque chose ressemblant à ça : "211 2029 1 20240
microsoft.public.fr.dotnet.vb".
Je n'arrive pas à savoir si ça vient de l'envoi de données qui n'a pas
fonctionné ou de la tentative de lecture elle-même.
Merci de m'éclairer.
Dim TCP As New System.Net.Sockets.TcpClient
TCP.Connect("news.microsoft.com", 119)
Dim NWS As System.Net.Sockets.NetworkStream = TCP.GetStream
Dim str As String
Dim bR(TCP.ReceiveBufferSize) As Byte
NWS.Read(bR, 0, TCP.ReceiveBufferSize)
str = System.Text.Encoding.ASCII.GetString(bR)
MsgBox(str) 'jusque là, ça marche
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _
("group microsoft.public.fr.dotnet.vb")
NWS.Write(bW, 0, bW.Length) 'apparemment ça marche,
'mais je n'arrive pas à le vérifier
Dim bR2(TCP.ReceiveBufferSize) As Byte
NWS.Read(bR2, 0, CInt(TCP.ReceiveBufferSize)) 'ça coince ici
str = System.Text.Encoding.ASCII.GetString(bR2)
MsgBox(str)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zazar
Bonsoir,
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _ ("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter la RFC adéquate.
-- Zazar
Bonsoir,
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _
("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un
délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter
la RFC adéquate.
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _ ("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter la RFC adéquate.
-- Zazar
Nicolas B.
Salut Zazar,
Ca marche ! Merci !
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute simple :-)
A+ Nicolas B.
Zazar wrote:
Bonsoir,
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _ ("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter la RFC adéquate.
-- Zazar
Salut Zazar,
Ca marche ! Merci !
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute
simple :-)
A+
Nicolas B.
Zazar wrote:
Bonsoir,
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _
("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un
délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter
la RFC adéquate.
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute simple :-)
A+ Nicolas B.
Zazar wrote:
Bonsoir,
Dim bW As [Byte]() = System.Text.Encoding.ASCII.GetBytes _ ("group microsoft.public.fr.dotnet.vb")
Je ne connais pas le protocole NNTP, mais à vue de nez il manque un délimiteur ici : caractère nul, retour chariot, ... je vous laisse consulter la RFC adéquate.
-- Zazar
Zazar
Bonjour,
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute simple :-)
Dans tous les protocoles de communication, il faut que celui qui reçoit des données soit capable d'isoler les différents messages qu'il a obtenus. Pour cela, il n'y a pas 36 solutions : -> soit on impose une taille fixe aux messages -> soit on préfixe le message par la taille des données -> soit on met un délimiteur entre chaque message
-- Zazar
Bonjour,
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute
simple :-)
Dans tous les protocoles de communication, il faut que celui qui reçoit des
données soit capable d'isoler les différents messages qu'il a obtenus. Pour
cela, il n'y a pas 36 solutions :
-> soit on impose une taille fixe aux messages
-> soit on préfixe le message par la taille des données
-> soit on met un délimiteur entre chaque message
J'aurais jamais trouvé la solution tout seul, bien qu'elle soit toute simple :-)
Dans tous les protocoles de communication, il faut que celui qui reçoit des données soit capable d'isoler les différents messages qu'il a obtenus. Pour cela, il n'y a pas 36 solutions : -> soit on impose une taille fixe aux messages -> soit on préfixe le message par la taille des données -> soit on met un délimiteur entre chaque message