ninja hacker
Messages postés45Date d'inscriptionlundi 10 septembre 2007StatutMembreDernière intervention19 mai 2008
-
12 oct. 2007 à 15:54
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
13 oct. 2007 à 20:48
Bonjour! =D
J'ai étudier la source produite ici : http://www.vbfrance.com/codes/PROGRAMME-CHAT_3026.aspx pour apprendre comment faire un chat tcp. Voila j'ai réussit a faire marcher la source (il y avait un petit probleme avec les textbox) et finalement jarrive a un probleme plutot majeur... Je peux faire des connexion local sur un meme pc ou sur deux ordi sur le résaux local. Maintenant j'aimerais pouvoir faire marcher mon chat sur des ordinateurs distants possedant un routeur. Ce qui complique les choses. Voila je ne sais pas si vous avez une meilleur source que ce que jai pour faire ce que je veux mais si oui donné moi la :P sinon pouvez vous m'aidé a faire marché mon chat d'un pc a un autre. MERCI
pour c'eu qui ne veulent pas download la source ou qui veulent voir mes modifs voicie les codes
Client :
Public
Class Form1
Inherits System.Windows.Forms.Form
Dim txtValue
As
String =
""
Dim
WithEvents Client
As
New TcpLibrary.TcpClient
Private
Sub txtWrite(
ByVal texte
As
String)
Me.txtChat.Text = texte
End
Sub
Private
Sub btnConnect_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles btnConnect.ClickClient.Connect(txtSvr.Text, txtPort.Text)
txtWrite(
"Connexion...")
End
Sub
Private
Sub Client_DataArrival(
ByVal available
As
Long)
Handles Client.DataArrival
Dim Tampon
As
String = Client.GetLine()
Do
While Tampon <>
""txtValue = Tampon
Tampon = Client.GetLine()
Loop
End
Sub
Private
Sub btnSend_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles btnSend.ClickClient.SendData(txtSend.Text & vbNewLine)
txtClear()
End
Sub
Private
Sub txtClear()txtSend.Clear()
End
Sub
Private
Sub btnDeconnect_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles btnDeconnect.ClickClient.Close()
End
Sub
Private
Sub Timer1_Tick(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Timer1.Tick
If (txtValue "") False
ThentxtChat.Text = (txtChat.Text & txtValue)
End
IftxtValue =
""
End
SubEnd
Class
Serveur :
Public
Class Form1
Inherits System.Windows.Forms.Form
' On créé un objet serveur
Dim
WithEvents Serveur
As
New TcpLibrary.TcpServer()
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
' On met le port indiqué dans TextBox1Serveur.Port(TextBox1.Text)
' Et on écoute sur le portServeur.StartListen()
End
Sub
' Le client connecté est passé en argument (Client)
Private
Sub Serveur_Connected(
ByVal Client
As TcpLibrary.TcpSocket)
Handles Serveur.Connected
' Quand un client s'est connecté on lui demande son pseudo
' Tout les envois doivent se terminer par vbNewLine (retour à la ligne)Client.SendData(
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 12 oct. 2007 à 17:07
il faut que tu ailles dans la config du routeur et que tu routes le port par exemple 987 sur la machine que tu veux que le chat tourne.
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
ninja hacker
Messages postés45Date d'inscriptionlundi 10 septembre 2007StatutMembreDernière intervention19 mai 2008 12 oct. 2007 à 23:57
Merci pour les réponses.
Après un peu de recherche j'en suis vite venus a la conclusion qu'il faut que mon routeur redirige mon paquets vers l'ordi avec qui je chat. Donc metons le routeur écoute le port 88. quand il recoit qqchose au port 88 il lenvoit au port 88 d'un des pc du réseau et la mon logiciel fait le rest. C'est bien tout ca. mais jai pas envie d'aller configurer le routeur chez tout les gens qui veulent utuliser mon chat. Alors je me demandais y a t-il un moyen de faire un code vb qui s'occupe de configurer le routeur? sinon quelle language pourais le faire (si un autre langage peut le faire bien sur). Merci de vos réponses!
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 13 oct. 2007 à 08:34
si c'est un netgear, tu vas dans le frame de gauche et tu cherches Services
tu en ajoutes un au port ex 88 avec un nom genre Chat
puis tu vas dans l'autre menu, je crois que c'est Redirection et tu ajoutes une ligne en précisant que le service est Chat
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 oct. 2007 à 20:46
Salut
Non, on ne peut pas "partager de port" avec une autre application.
Un port est à usage unique. Si deux applications tournent sur le même PC, elles ne pourront pas utiliser le même port (écoute ou connexion)
Par défaut, ton routeur refuse toutes les requètes externes. Une requète TCP fournit toujours le numéro de port sur laquelle elle veut se connecter. Cela ne concerne que les requètes entrantes (internet vers chez toi), les requètes sortantes sont libres.
Le rôles des "port forwarding" ou "NAT" est de déclarer au routeur les exceptions.
Il faudra lui dire que si qqun veut entrer sur le port X, il laisse passer cette requète et la transmette au PC du réseau intenre donc l'adresse IP est Y, et optionnellement sur le port Z de cette machine (au cas où tu voudrais modifier le numéro du port par la même occasion).
X et Y doivent être donnés lors de ce paramétrage
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)