jabaka
Messages postés19Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention26 septembre 2008 19 sept. 2008 à 23:58
Oui j'ai essayer
Dim buffer(1024) as Byte
Cependant j'ai la même erreur qui revient
La référence d'objet n'est pas définie à une instance d'un objet
Ce pourrait-il que
client.Receive(buffer) donne une erreur si Receive recoit rien
Merci d'avance encore une fois au courageux volontaires :P
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 20 sept. 2008 à 04:15
Une classe (un objet par référence) doit toujours être initialisé avant de pouvoir être utilisé. Et ceci se fait par ce qu'on appel le constructeur, la Sub New, appelé en ajoutant un New avant le type.
MonBouton = New Button
Les types par valeur, c'est à dire les types de base (Integer, Double...) ou les structures, ne nécécitent pas de constructeur, mais il sont possible.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 21 sept. 2008 à 00:42
"C'est peut-être l'instanciation de client1 qui n'est pas correct"
Cela ne fait pas de doute, suffit de voir son code:
Dim clientAs Socket TOUT EST OK ICI
Dim buffer1(1024)As Byte TOUT A L AIR OK ICI
client1.Receive(buffer1) ICI CA BLOCK TOUJOURS
Voila comment il faut faire:
Dim clientAsNew Socket
Dim buffer1(1023)As Byte
client1.Receive(buffer1)
Lors de la déclaration d'un tableau on définit l'index du dernier élément du tableau. Donc pour avoir un tableau de 1024 élément, on déclare avec 1023
jabaka
Messages postés19Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention26 septembre 2008 21 sept. 2008 à 04:07
Merci pour vos réponses mais en passant les parametres a new Socket(socket.addressfamily,socket.sockettype,socket.ptotocoltype)
adress family c l'adresse localhost? ou celle du client qui se connecte
il me donne une erreur comme quoi je ne peut pas avoir 2 socket de lancer a la meme adresse je vais vous laisser une partie du code si vous pouvez trouver ce qui marche pas serait gentil :P Merci d'avance
<hr />Private
listener
As TcpListener
Private clientsocket
As Socket
Private
Sub StartListening()
Dim listener
As TcpListener =
New TcpListener(listenport)
listener.Start()
While
True
Try
Dim s
As Socket = listener.AcceptSocket()
clientsocket = s ca doit etre dans ce coin ici qu'il faudarait placer le new et j'aimerais
que ServiceClient se lance seulement a l'acceptation listener.AcceptSocket()
clientService =
New Thread(
New ThreadStart(
AddressOf ServiceClient))
clientService.Start()
Catch ex
As Exception
RaiseEvent SMsg(ex.ToString)
End
Try
End
While
'listener.Stop()
End
Sub
Private
Sub ServiceClient()
Dim keepalive
As
Boolean =
True
Dim buffer1(1024)
As
Byte
While keepalive =
True
clientsocket.Receive(buffer1)
<hr />