Page 2 sur 6
Re: [..] Script de connection TCP/UDP (Projet)
Posté : dim. 23 nov. 2008 13:25
par L4crymal
Merci j'ai VISTA ^^ mais je me suis débrouiller et franchement c'est pas si simple ce genre de serveur
Re: [..] Script de connection TCP/UDP (Projet)
Posté : dim. 23 nov. 2008 17:13
par minoui
A ok dsl ^^
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mar. 25 nov. 2008 06:59
par L4crymal
J'ai plus de nouvelles personnes nous aide :'( ce soir j'irai chercher sur GOOGLE : serveur client UDP TCP je suis sur qu'il y a qqchose merci de me tenir au courant si vous faites de même
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mar. 02 déc. 2008 12:18
par TurT
Bonjour je viens a l'aide!
D'après ce que j'ai lu le Serveur a comme port d'écoute 14584 (celui-ci est changeable il suffit juste qu'il soit commun avec le client) donc soit il faut utilisé un port déjà ouvert sur toute les box en mode router (c'est a dire adresse ip privée du style 192.168.*.*) le port 80 est celui des navigateurs internet.
Pour ceux voulant utilisé se port d'origine: 14584 il faut faire un redirection de port sur l'interface de la box (En général on se connecte depuis une page internet avec l'adresse ip du réseau ex:192.168.0.1, cette ip peut être différente en fonction des FAI: free, orange, neuf etc...)
La redirection de port se présent en général comme cela:
a lire de haut en bas de gauche a droite
Port entré: | Protocole: | adresse ip: | port écoute:
14584 | TCP/UDP | IP du serveur | 14584
Si c'est pas clair je préciserai en détail!
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mar. 02 déc. 2008 22:09
par L4crymal
Fa je l'ai fait y a longtemps cela ne change rien, essaie chez toi, dit moi en des nouvelles
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 03 déc. 2008 08:06
par TurT
Je l'ai fait hier au travail en même temps que je l'expliquer, j'ai changer les ports du serveur et client en 80, j'ai lancer le serveur sur mon pc le client sur un autre mit l'adresse ip de mon pc (le serveur) et sa a marché!
Détail il a fallu que je déactive le pare-feu windows sur le serveur (mon pc) pour autorisé les entrés, étonnant étant donné que j'ai pris le port internet qui est censé passer partout o_0
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 03 déc. 2008 12:46
par L4crymal
J'essaie donc avec le 80 !!! ( oui normale car le port 80 est autorisé mais pas le logiciel spécifié

)
EDIT : finalement chez moi cela ne fonctionne pas ... quelqu'un pourrait tester ?
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 07 oct. 2009 07:34
par Douves
Les ports, moi, ils fonctionnent tous, bref
Pour le multi-client, essaye d'utiliser une DLL avec :
L'etat actuel
L'ip
$recv = tcprecv....
Verif dans la dll
revoi a l'ip connecté par rapport a l'etat actuel
Sinon, ouvre une nouvelle connetion (ecris dans la dll

)
Enjoy
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 14 oct. 2009 08:21
par anon25
L4crymal a écrit :Salutation, Je vais vous raconter une histoire:
Il était une fois, AUTOIT, il aidait au début beaucoup de personne aimant l'informatique à faire des "macro", mais AUTOIT étant très réputé et puissant, il évolua et devenu encore + puissant et recueillant + de possibilités de fonctionnement. Mais aujourd'hui, les utilisateurs de AUTOIT se posent une question : Pourquoi les fonctions sur TCP/UDP existent telles si personnes ne sais les faire fonctionner entre 2 ordinateurs ou ne sais que très peut de leur puissance?
C'est alors que ce projet naquit : Le pouvoir de la connexion TCP/UDP !
Je vais tenter de faire un script/tuto sur ces fonctions, et j'ai besoin de VOUS! *Oncle Sam pour ceux qui connaissent*
Voici les deux scripts là ou ils en sont (Explications Traduite):
SERVER :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
;SCRIPT DU SERVER ; A LANCER EN PREMIER
;==============================================
;==============================================
Example()
Func Example()
Sleep (100)
; INFOS A COMPLÉTÉES
Local $szServerPC = @ComputerName
Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $nPORT = 14584
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv
; Lancement des services TCP
;==============================================
TCPStartup()
; Ouverture d'un port sur le reseau / ATTENTION UN PARE FEU PEU BLOQUER CETTE FONCTION
; Utilisation pour l'ouverture de : L'ip Public (@IPAddress1) avec le port 14584 (inutilisé normalement)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT,5000)
; Si la connection au port à échouée, alors on recommence
If $MainSocket = -1 Then
Example()
EndIf
; Création d'un GUI pour envoyer des données vers un autre PC part le port ouvert
;==============================================
$GOOEY = GUICreate("Mon Server (IP: " & $szIPADDRESS & ")", 300, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 280, 180)
GUISetState()
; Initialisation de la variable définissant la connexion
;==============================================
$ConnectedSocket = -1
;Attente d'une demande de connection
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
; Connaitre l'adresse IP du CLIENT
$szIP_Accepted = SocketToIP($ConnectedSocket)
; Fenêtre GUI affichant les données envoyées
;==============================================
While 1
$msg = GUIGetMsg()
; Fermeture de la GUI
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Reçoit des données à partir du port connecté / 2048 bytes maximum
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 2048)
; Si les données on mal été reçues, le SERVER se ferme
;----------------------------------------------------------------
If @error Then ExitLoop
; Rafraichissement des données envoyées
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
WEnd
If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
TCPShutdown()
EndFunc ;==>Example
; Fonction permettant de connaitre l'adresse IP du CLIENT connecté au SERVER
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
"ptr", DllStructGetPtr($sockaddr), "ptr", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
$sockaddr = 0
Return $aRet
EndFunc ;==>SocketToIP
CLIENT :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$szIPADDRESS = InputBox("Connexion à un SERVER", "IP du SERVER : ", @IPAddress1)
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
;SCRIPT DU CLIENT ; A LANCER EN DEUXIEME
;==============================================
;==============================================
Example()
Func Example()
; INFOS A COMPLÉTÉES
Local $ConnectedSocket, $szData
Local $nPORT = 14584
; Lancement des services TCP
;==============================================
TCPStartup()
; Initialisation de la variable définissant la connexion
;==============================================
$ConnectedSocket = -1
;Connection sur le SERVER d'adresse IP:*voir ImputBox* avec le port 14584 (inutilisé normalement)
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
; Si une erreur existe alors on l'envoie par MsgBox puis le script se ferme
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
; Si il n'y a pas d'erreur le CLIENT est connecté au SERVER
Else
;Demande de données à envoyées
While 1
; InputBox des données à envoyées
$szData = InputBox("Data for Server", @LF & @LF & "Enter data to transmit to the SERVER:")
; Si il y a une erreur ou si le bouton annuler est préssé le script se ferme, si les données envoyées sont nul, ne rien faire
If @error Then
Exit
ElseIf $szData = "" Then
Sleep (0)
EndIf
; Envoie des données vers le SERVER
TCPSend($ConnectedSocket, $szData)
; Si les données n'ont pas été envoyées, le CLIENT se Déconnecte
;----------------------------------------------------------------
If @error Then ExitLoop
WEnd
EndIf
EndFunc ;==>Example
Si vous avez des amélioration venez me les proposer !
Le script sera mis à jour lorsque une modification sera effectuée
Voici les Problèmes ou questions que je me pose avant de continuer merci de bien vouloir y répondre

:
-Lorsque le bouton Cancel une nouvelle GUI du serveur s'ouvre ( à corriger par : Lorsque le bouton CANCEL est appuyé, le CLIENT se ferme et le SERVER reste tel qu'il est en attente d'une nouvelle connexion)
Seulement en réseau ou via Internet ça fonctionne?
Si j'installe comme prévu, le server peut accéder au DD du client ?
J'aimerais avoir d'avantages d'explications svp, car j'aimerais pouvoir accéder au DD de mon deuxième ordinateur (dans mon appartement), via l'Internet, avec des codes et sans logiciel, je veut comprendre le fonctionnement des ports et des connexions en exploitant AutoIT.
Merci
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 14 oct. 2009 15:23
par Iste
anon25 a écrit :Seulement en réseau ou via Internet ça fonctionne?
Le protocole TCP/IP ne fait pas la difference entre lan et net
C'est juste aux routeurs de bien faire le boulot.
Sinon, si c'est juste pour fouiller dans le DD, je te conseil VNC qui permet le transfère de fichier de facon assez simple (avec AU3 ca devient vite compliqué...)
Re: [..] Script de connection TCP/UDP (Projet)
Posté : mer. 14 oct. 2009 23:21
par L4crymal
Sinon pour franchir les portes de ton routeurs, il faudra faire du port forwarding comme pour E-mule, ce dernier possède une API pour automatiser cette action... mais autoit... j'en doute fort.
Re: [..] Script de connection TCP/UDP (Projet)
Posté : jeu. 15 oct. 2009 18:19
par guitarist
J'ai une question : Faut-il forcement avoir un routeur pour ce script ou y-a-t-il un autre moyen?
Re: [..] Script de connection TCP/UDP (Projet)
Posté : jeu. 15 oct. 2009 23:44
par anon25
Donc il est trop compliqué de faire un logiciel pour accéder au DD avec AutoIT ?
Merci pour VNC, mais j'aime mieux programmer, c'est avant tout un défi personnel

Re: [..] Script de connection TCP/UDP (Projet)
Posté : ven. 16 oct. 2009 08:09
par anon25
Ah j'ai eu une idée.
Pourquoi pas utiliser le port 21 ?
Coder une sorte de serveur....
Vous savez, comme PowerFTP ou encore Secure FTP Server, mais en beaucoup, beaucoup plus simple.
Pas de choix de répertoire, C:\, simplement. Très simple GUI...
Présentement je dérape avec le sujet et désolé pour le double post.
Je veut seulement savoir si ce projet est réalisable et je tâcherais de faire un post pour.
Merci encore.
Re: [..] Script de connection TCP/UDP (Projet)
Posté : ven. 16 oct. 2009 18:51
par Iste
@
anon25 : bah c'est mieux si y'en a pas

mais en général les connexion internets de nos jour sont vendu avec des 'box' qu'on est donc obligé de configurer...
@guitarist : c'est pas impossible, mais vraiment TRES compliqué et ca sera TRES long, alors que VNC le fais deja tres bien

Mais si vraiment tu veux le faire (ca pourrait en aider plus d'un donc c'est une bonne idée), oui crée un post a ce sujet, je dois déja avoir quelque topic sous la main pour commencer :p
Re: [..] Script de connection TCP/UDP (Projet)
Posté : ven. 16 oct. 2009 20:05
par anon25
Tu voulait dire @anon25 non ?
Sinon je crois que l'idée est bonne, vraiment quelque chose de très simple.
Je vais faire un post sur le sujet, et parfait si tu crois déjà avoir quelque topic sous la main
car je sais pas par ou commencer !
Merci
Re: [..] Script de connection TCP/UDP (Projet)
Posté : sam. 17 oct. 2009 20:40
par Voodoo
J'ai lu les quatres pages du post et j'ai l'impression que vous vous êtes egaré ou alors que je vous m'avez perdu
Si c'est pour faire un mini-tuto Tcp/udp, prenez un truc basic comme un client de messagerie (client-client ) et si vous vous sentez d'attaque un mini irc (client-serveur) car j'avoue que je ne vois pas trop le rapport avec le vpn, dyndns, noip...
Re: [..] Script de connection TCP/UDP (Projet)
Posté : dim. 18 oct. 2009 00:00
par L4crymal
Le but du truc ce serait de faire une connection TCP/IP entre 2 machines sans port-forwarder le routeur.
Re: [..] Script de connection TCP/UDP (Projet)
Posté : dim. 18 oct. 2009 01:47
par Iste
bah ca c'est techniquement impossible.
Si le server est derrière un routeur, on doit obligatoirement router le paquet, donc indiquer a la box que faire. Si la box recoi un paquet, mais que le port n'est associé a aucune adresse local, il se perd tout simplement, et aucun logiciel instalé sur la machine ne changera ca.
Les DNS dynamique ne retire qu'un demi problème, qui n'en est pas vraiment un, étant l'adresse ip de la machine
Re: [..] Script de connection TCP/UDP (Projet)
Posté : dim. 18 oct. 2009 12:54
par Voodoo
Le but du truc ce serait de faire une connection TCP/IP entre 2 machines sans port-forwarder le routeur.
On ne "port-forward" pas le routeur

C'est le routeur qui "port-forward" pour nous. Très schématiquement, l'interet est comme même de pouvoir associer plusieurs équipement derrière une même adresse public (dans le cas d'une box par exemple).
Donc pas d'intérêt de passer outre la redirection de port. Enfin je dis ça, je dis rien
