Déterrage de vidéo !! Tes deux vidéos m'ont bien aidées dans mon projet même après toutes ces années. Merci beaucoup à toi pour ce travail.
@bralielisesitou18418 жыл бұрын
Quel grand et bon travail, effectué? Merci beaucoup Projectx7, C'est Super!!!!
@saturninramirez11073 жыл бұрын
Bonjour , tres bien expliqué , merci
@joseramarosandy47405 жыл бұрын
Salut, lorsque je clique sur le bouton se déconnecter et je reconnecte le serveur, le bouton ne change plus à "se deconnecter", d'ailleur lorsque je lance le client et quand je le connecte au serveur,j'ai eu une erreur comme celle-ci : SocketException was unhandled" (aucune connexion n'a pu etre établie car l'ordinateur cible l'a expressément refusée 127.0.0.1:3818) et non pas : "le serveur a fermé la connexion", peux-tu m'aider
@rolandverneaux13936 жыл бұрын
Bonjour Tes vidéo sont super! Question j'utilise visual basic pour échanger des données entre Visual basic et l'arduino. Mon arduino envoie un identifiant (du type 145869) sur le port série. Comment lire cette valeur (qui vient donc tu port série) et l'afficher a l'aide d'un label dans visual basic ? Merci d'avance
@verslay6 жыл бұрын
Bonjour, je viens de voir ce tutoriel et il répond à ce que je cherché, du moins presque. Je m'explique, il y a effectivement un serveur et des clients mais les messages que les clients envoient vont directement sur le serveur et du coup les clients ne peuvent pas parler entre eux. J'aimerai savoir comment on peut faire pour que lorsque le client1 envoie un message, le message passe par le serveur puis ensuite s'arrête au client2 donc le client2 peut voir le message et vice versa. Merci et j'espère que vous m'aurez compris.
@sergedoux76012 жыл бұрын
Bonjour félicitations je beaucoup aimer la vidéo mais j'ai une question comment faire si on voulait partager une telle application sur deux ou plusieurs ordinateurs qui vont se connecter à ce serveur comment y parvenir
@nguessanyapojosiasarmel34676 жыл бұрын
merci pour le tuto mais j'ai un soucis. si je veux enregistrer les messages dans une bd comment je m'y prends?
@sebastienperrin4234 жыл бұрын
salut, super vidéo. Petite question, est-ce que une personne qui se trouve par exemple à 100km de chez moi peut se connecter ou pas ?
@ll2-antoni7 жыл бұрын
Salut très bon travail, tu expliques très bien et pourrais tu montrer comment envoyer automatiquement un fichier texte par mail en indiquant son emplacement et les renseignements (adresse mail, code,...) dans le code ?
@arielboukris7 жыл бұрын
Salut, pourrai tu faire une version pour envoyer/recevoir des fichiers ?
@vincentp40474 жыл бұрын
Bonjour, on peut t on trouver votre code en zip merci pour le tuto
@toolsgadgets50796 жыл бұрын
Merci pour la vidéo, est ce qu'il a possibilité d'envoyer/recevoir des fichiers ?
@OnimOff5 жыл бұрын
Salut, j'ai une erreur : Run n'est pas un membre de System.Threading.Tasks.Tas. Pouvez vous m'aider please
@vidottofrederic82324 жыл бұрын
meme probleme pouvez vous m aider
@jbrelave6476 жыл бұрын
Salut, comment le serveur peut parler a un Client et pas les autres ?
@grevi_teachingstv70675 жыл бұрын
Salut, cette application m'a beaucoup inspirée!!! merci beaucoup. Mais j'ai une préoccupation cette ligne me renvoie une erreur Private Sub BtnSeConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSeConnect.Click If (BtnSeConnect.Text = "Se connecter") Then MonClient = New TcpClient() MonClient.Connect(IPAddress.Parse("127.0.0.1"), Integer.Parse(TextPort.Text)) Dim Context As TaskScheduler = TaskScheduler.FromCurrentSynchronizationContext() Task.Run(Sub() LireLesMessages(Context, MonClient.GetStream())) BtnSeConnect.Text = "Se connecter" Else MonClient.Close() BtnSeConnect.Text = "Se connecter" End If End Sub Quand je met Task.Run on met dit que Ru n'est pas un membre de system.Threading.Tasks.Task Qu'est dois-je faire? Aidez-moi s.v.p.
@stephanes3438 жыл бұрын
Une autre question c'est possible de fusionné, le serveur et le client (émetteur et récepteur dans la mème applis.? merci encore pour ton travail .
@projetx78 жыл бұрын
Justement c'est ce que j'ai fait dans ce tuto.. :P
@stephanes3438 жыл бұрын
Non , il y a deux fenêtres , avec une seul fenêtre qui au démarrage est serveur OU client , en fonction si il trouve un serveur il devient client OU il devient serveur si il n'y a pas de serveur. merci .C'est possible?
@projetx78 жыл бұрын
J'ai montré comment créer un serveur et un client, a toi d'adapter les choses selon tes besoins. Tu peux essai d’être client au début ça veut dire que t'essai de te connecter comme j'ai montré si il n y a pas de serveur t'aura une erreur que tu peux gérer grâce a (Try Catch) donc au cas d'erreur ça veut dire que il n y a pas de serveur et donc tu peux être le serveur.
@stephanes3438 жыл бұрын
merci c'est super top continuer comme ça. très bon travail .
@projetx78 жыл бұрын
Merci également.
@lakehalayatelhacenedjallel83787 жыл бұрын
Merci pour la vidéo, pourrai tu me dire pourquoi lorsque je clique sur le bouton de connexion du serveur j'obtient une erreur " la référence d'objet n'est pas définie à une instance d'un objet", pourtant le code est le même. Merci
@projetx77 жыл бұрын
L'erreur veut dire que la variable ou l'objet est vide t'as probablement oublié le mot clé "New" dans le code MonClient = New TcpClient() Si le problème persiste peut-tu copier-coller ton code ici ? Merci.
@lakehalayatelhacenedjallel83787 жыл бұрын
Non je ne l'ai pas oublié par contre j'ai ajouté un "New" dans LesClinets as New Liste(of TcpClient). après j'ai eu l'erreur dans MonServeur.Stop() je l'ai mit en commentaire, y a plus d 'erreur mais aucun msg n'est transmit ou reçu, est ce tu as une idée ? Pour info, là où il y a Task.run, je l'ai remplacé par Task.Factory.StartNew. Merci.
@projetx77 жыл бұрын
L'erreur dans Serveur.Stop() ça veut dire que tu n'as pas lancé le serveur, est ce que je peux voir ton code de connexion ? c'est probablement le Port qui n'est pas ouvert.
@lakehalayatelhacenedjallel83787 жыл бұрын
Voici le code du serveur : Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports System.Threading.Tasks Imports System.Text Public Class Serveur 'Dim serv As TcpListener Dim MonServeur As TcpListener 'Le serveur Dim LesClients As List(Of TcpClient) 'Les clients TCP ( on crer une liste de tcp client) ' on ajouter un new par ce que on avait une erreur Dim counteur As Integer = 0 ' afin de nommé les clients, client 1, client 2,...., pour savoir qui a envoyé le message Dim client1 As LeClient Dim client2 As LeClient Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try If (Button2.Text = "Lancer") Then MonServeur = New TcpListener(IPAddress.Parse("127.0.0.1"), Integer.Parse(TextPort.Text)) ' on pouvait mettre directement le port, sinon on fait comme ceci on convertit, parse=convertir LesClients = New List(Of TcpClient) 'pour initialiser les client, comme ça on peut ajouter des clients et ensuite on va lancer le serveur, une fois le serveur est lanceé on va appelé la méthode "accepter" pour accepter les clinets MonServeur.Start() 'Pour faire les mise à jour sur le form 1 on va créer un context Dim Context As TaskScheduler = TaskScheduler.FromCurrentSynchronizationContext() ' ' on va passer ce context à la méthode accepter Task.Factory.StartNew(Sub() Accepter(Context), CancellationToken.None, TaskCreationOptions.LongRunning) 'pour les méthode qui commence avec task font la mise à jour sur le form1(serveur) Button2.Text = "Arrêter" Else For Each client As TcpClient In LesClients client.Close() 'Fermer la connexion avec tous les clients. Next MonServeur.Stop() Button2.Text = "Lancer" End If Catch ex As Exception MessageBox.Show(ex.Message, "Erreur dans la connexion") 'Message d'erreur End Try End Sub Private Sub Accepter(ByVal Context As TaskScheduler) 'Accepter les clients Try While (True) Dim NouveauClient As TcpClient = MonServeur.AcceptTcpClient() ' Pour accepter les clients LesClients.Add(NouveauClient) 'pour ajouter ce nouveau client à la liste des clients counteur = counteur + 1 'on va commencer par une nouvelle tâche Task.Factory.StartNew(Sub() LireLesMessages(NouveauClient.GetStream(), "Client " + counteur.ToString(), Context)) 'Si t'as pas de Task.Run donc utilise Task.Factory.StartNew() '(si on veut accepter qu'un seul client on enlève task, et si on veux accepter plusieurs clients on doit utiliser task, et mettre ses instruction dans une boucle while End While Catch ex As Exception 'Quand j'arrête le serveur j'aurai un msg, donc de préférence je fais que exit sub ' MessageBox.Show(ex.Message) Exit Sub End Try End Sub 'Pour lire les donnés des clients ' Network stream pour lire les données(les messages) 'leNom pour savoir qui a envoyé le message client 1 ou client 2 ,... Private Sub LireLesMessages(ByVal stream As NetworkStream, ByVal LeNom As String, ByVal context As TaskScheduler) 'Lire les données envoyées par les clients. Try Task.Factory.StartNew(Sub() MessageReçu(LeNom + " connecté."), CancellationToken.None, TaskCreationOptions.None, context) Dim buffer(4096) As Byte ' pour mettre les donnée envoyer par le client While (True) ' pour continuer à lire les messages 'Pour savoir combien de données on a lu Dim lu As Integer = stream.Read(buffer, 0, buffer.Length) ' pour stocker les données dans buffer, à partir du zéro,et ondique la taille de données 'si lu > 0 le client à envoyé qqc et si lu = 0 le clinet est déconnecter If (lu > 0) Then 'Pour convrtir le message de Byte en string Dim Message As String = Encoding.UTF8.GetString(buffer, 0, lu) ' On va mettre le message dans text box avc Messager ecçu Task.Factory.StartNew(Sub() MessageReçu(LeNom + ": " + Message), CancellationToken.None, TaskCreationOptions.None, context) Else 'le client est déconnecter donc on doit sortir de cette methode(lirelesmessages) ' pour indiquer que le clinet est déconnecter Task.Factory.StartNew(Sub() MessageReçu(LeNom + ": déconnecté."), CancellationToken.None, TaskCreationOptions.None, context) Exit Sub End If End While Catch ex As Exception End Try End Sub ' Pour mettre à jour les messages reçus Private Sub MessageReçu(ByVal leMessage) TextBox1.AppendText(leMessage + vbNewLine) ' Appendtext : pour rajouter un message, vbNewline pour sauter une ligne End Sub ' Comme on a utiliser le task donc on ne peut pas modifier directement le textbox on doit utiliser le contexte Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 'Buton Envoyer message aux clients. ' Lorsque on clique sur envoyer, on va envoyer le msg à tt les clients ' pour avoir en moins un client connecter If (LesClients.Count > 0 And TextBox2.Text IsNot "") Then Dim LeMessage As String = TextBox2.Text Dim buffer() As Byte = Encoding.UTF8.GetBytes(LeMessage) For Each client As TcpClient In LesClients client.GetStream().Write(buffer, 0, buffer.Length) ' getstream pour envoyer et recevoir des msg Next End If End Sub Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click client1 = New LeClient() client1.Show() client2 = New LeClient() client2.Show() End Sub End Class """""""""""""""" Et voici le code du client Imports System.Text Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports System.Threading.Tasks Public Class LeClient Dim MonClient As New TcpClient Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 'Bouton de connexion. ' Try 'Pour éviter les erreurs If (Button1.Text = "Se connecter") Then MonClient = New TcpClient() MonClient.Connect(IPAddress.Parse("127.0.0.1"), Integer.Parse(TextPort.Text)) Dim Context As TaskScheduler = TaskScheduler.FromCurrentSynchronizationContext() Task.Factory.StartNew(Sub() LireLesMessages(Context, MonClient.GetStream())) Button1.Text = "Se déconnecter" Else MonClient.Close() Button1.Text = "Se connecter" End If ' Catch ex As Exception ' MessageBox.Show(ex.Message, "Erreur") 'Afficher l'erreur. ' End Try End Sub Private Sub LireLesMessages(ByVal Context As TaskScheduler, ByVal stream As NetworkStream) 'Lire les messages du serveur Try Dim Buffer(4096) As Byte While (True) Dim lu As Integer = stream.Read(Buffer, 0, Buffer.Length) If (lu > 0) Then Dim Message As String = Encoding.UTF8.GetString(Buffer, 0, lu) 'False: le serveur n'a pas fermé la connexion Task.Factory.StartNew(Sub() NouveauMessage(Message, False), CancellationToken.None, TaskCreationOptions.None, Context) Else 'True: le serveur a fermé la connexion Task.Factory.StartNew(Sub() NouveauMessage("Le serveur a fermé la connexion.", True), CancellationToken.None, TaskCreationOptions.None, Context) Exit Sub End If End While Catch ex As Exception Exit Sub End Try End Sub Private Sub NouveauMessage(ByVal message As String, ByVal Fermé As Boolean) TextBox1.AppendText(message + vbNewLine) If (Fermé) Then Button1.Text = "Se connecter" MonClient.Close() End If End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click 'Bouton envoyer un message au serveur. If (Button1.Text = "Se déconnecter") Then Dim buffer() As Byte = Encoding.UTF8.GetBytes(TextBox2.Text) MonClient.GetStream().Write(buffer, 0, buffer.Length) TextBox2.Text = "" End If End Sub End Class """ Merci.
@projetx77 жыл бұрын
Je vais tester chez moi mais juste rapidement est ce que le texte sur le button2 est égal à "Lancer" ? Pour vérifier étape par étape on va ajouter quelque messageBox et vérifications, dans le bouton lancer on va mettre plutôt ça: (Avec ces vérifications on doit pas avoir d'erreur qu'on on veut lancer le serveur) Try If (Button2.Text = "Lancer") Then MonServeur = New TcpListener(IPAddress.Parse("127.0.0.1"), Integer.Parse(TextPort.Text)) ' on pouvait mettre directement le port, sinon on fait comme ceci on convertit, parse=convertir MessageBox.Show("Etape 1 : Serveur initialisé") 'Vérification 1 LesClients = New List(Of TcpClient) 'pour initialiser les client, comme ça on peut ajouter des clients et ensuite on va lancer le serveur, une fois le serveur est lanceé on va appelé la méthode "accepter" pour accepter les clients MonServeur.Start() MessageBox.Show("Etape 2 : Serveur lancé") 'Vérification 2 'Pour faire les mise à jour sur le form 1 on va créer un context Dim Context As TaskScheduler = TaskScheduler.FromCurrentSynchronizationContext() ' ' on va passer ce context à la méthode accepter Task.Factory.StartNew(Sub() Accepter(Context), CancellationToken.None, TaskCreationOptions.LongRunning) 'pour les méthode qui commence avec task font la mise à jour sur le form1(serveur) Button2.Text = "Arrêter" Else 'Vérifier que lesClients est intialisée If LesClients Nothing Then For Each client As TcpClient In LesClients client.Close() 'Fermer la connexion avec tous les clients. Next End If If MonServeur Nothing Then 'Vérifier que le serveur n'est pas vide (Null) MonServeur.Stop() End If Button2.Text = "Lancer" End If Catch ex As Exception MessageBox.Show(ex.Message, "Erreur dans la connexion") 'Message d'erreur End Try
@preganamackoundy37798 жыл бұрын
Merci beaucoup mais avant je pensai que la programmation était vraiment compliquer que il falait avoir des connaissance de Mathématique trés avancer mais grâce à tes tutoriels je peux programmer mes logiciels merci,merci beaucoup. Mais j'ai un problème, je n'arrive pas à connecter la base de donné et mon logiciel que j'ai créé si vous pouvez m'aider Merci!
@MelchiBanza5 жыл бұрын
Bonjour j'aimerai avoir ce projet mais en c#
@kacoukevan86928 жыл бұрын
salut à tous j'ai besoin d'aide. je faire un logiciel de ventes de boisons, je cherche comment permettre à l'utilisateur de choisir plusieurs boisons simultanément pour en faire la commande du client afin de faire la déduction de la quantité de chacun dans la base de donnée. je pus faire pour un article acheté mais pour plusieurs,ça coince. Aidez moi svp.
@mohamedcamara13506 жыл бұрын
Quelles sont tes tables pour cette ventes?
@i-media4044 жыл бұрын
On dirait qu'il n' y a pas de 88 sur le playlist
@stephanes3438 жыл бұрын
Merci pour le partage très bien merci. Peut on crypté la connexion entre client serveur ? avec une base 64 ou autre merci encore
@projetx78 жыл бұрын
Oui on peut crypter les données avant de les envoyer et les décrypter une fois reçu.
@stephanes3438 жыл бұрын
comment faire ? merci
@projetx78 жыл бұрын
Tu peux utiliser ces deux méthodes pour crypter et décrypter: pastebin.com/LVXr9jqc Exemple: Dim Phrase As String = "Salut" TextBox1.Text = Crypter(Phrase) 'Décrypter: TextBox2.Text = Décrypter(TextBox1.Text) '= Salut
@stephanes3438 жыл бұрын
Merci cela fonctionne super bien.
@KlaChPlay7 жыл бұрын
c'est quoi ta version de visual basic ?
@projetx77 жыл бұрын
Visual Studio community 2015, c'est une version gratuite
@KlaChPlay7 жыл бұрын
il est possible de genre faire une integration d'un chat vocal en plus du chat ecris ?
@projetx77 жыл бұрын
Oui c'est possible, j'en ferai un tuto très prochainement ^^
@KlaChPlay7 жыл бұрын
Projetx7 Dac merci 😊
@KlaChPlay7 жыл бұрын
comment on peut faire pour separer le serveur et client ?