» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

SkullBox Forum  |  Development  |  AutoIt  |  Topic: TCPConnect

| |
Pagini: [1]
Print

TCPConnect [917 afisari]

Bobyk
*


Mesaje: 242
OfflineOffline


Ma puteti ajuta si pe mine cu o problema  (Straight face...
vreau sa fac un server si un client...problema este ca nu stiu cum sa fac conexiunea intre pc care are deschis serverul si clientul ,de pe alt PC.

Am facut un mini-client pt. a va arata ideea...
Daca reusiti sa.mi faceti un server care sa se conecteze cu acest client asi fi recunoscator...
Multumesc!

Client:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 173, 136, 193, 125)
$Input1 = GUICtrlCreateInput("ip", 16, 8, 153, 21)
$Input2 = GUICtrlCreateInput("port", 16, 40, 97, 21)
$conectare = GUICtrlCreateButton("conectare", 16, 72, 97, 25, 0)
$Button1 = GUICtrlCreateButton("send msgbox", 16, 104, 97, 25, 0)
GUISetState(@SW_SHOW)
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

   EndSwitch
WEnd
Logged

Să nu te opreşti niciodată din a-ţi pune întrebări, curiozitatea stă la baza existenţei.
-Albert Einstein-
08-04-2009, 15:09 Twitt ::
srdjan
*


Mesaje: 157
OfflineOffline


sincer nu stiu ce e AutoIT si nici nu ma intereseaza...din cate vad eu e 90%Basic si 5%C... restul de 5% lipseste cu desavarsire
in fine... ce vrei tu sa faci ma gandesc e ca ar trebui sa incluzi un COM numit winsock.ocx.
la asta ai paramterii gen localIP remoteIP localPort remotePort si 2 metode foarte importante... 1: listen (pentru server) si
2: connect pentru client
la server(listen) tre sa setezi localIP si localPort
iar la client trebe si local si remote cred
in momentul in care inceri o conectare de la 2 la 1, 1 declanseaza un event (ConnectionRequest)

daca n-ai inteles in linii mari nu te speria... am scris eu prea ambiguu  Big grin
Logged

De ce sa bei si sa conduci cand poti sa fumezi si sa zbori !?!
08-04-2009, 21:01 Twitt ::
Bobyk
*


Mesaje: 242
OfflineOffline


fac progrese Laughing ,akuma incerc sa-l fac cum mi-ai zis.
Logged

Să nu te opreşti niciodată din a-ţi pune întrebări, curiozitatea stă la baza existenţei.
-Albert Einstein-
08-04-2009, 21:11 Twitt ::
shadow-hacker
*


Mesaje: 59
OfflineOffline

WWW

bun in primu rand daca ai da F1 in SciTe ti-ar porni help si acolo ia gasi un server si un client facut de la examples
oricum am sa iti explic in mare parce de ce ai nevoie
in primu rand trebuie sa pornesti serviciul TCP cu urmatoarea comanda
Code:
tcpstartup()
aceasta comanda o incluzi si in server si in client la inceput

acuma intr-un server ai nevoie sa deschizi un port pe care sa "asculti", pt acest lucru adaugi urmatoarea comanda
Code:
$MainSocket = TCPListen($g_IP, 65432)
aici poti vedea ca variabilei $mainsocket i se atribuie valorile de la comanda TCPListen, acum serverul tau asculta pe ip-ul din variabila $g_IP(de obicei val acestei var este @ipaddress1), pe portul 65432

acum ca sa fie conexiunea completa serverul trebuie sa accepte clientul si pentru asta vei avea nevoie de urmatoarea comanda in interiorul lui "while"
Code:
$ConnectedSocket = TCPAccept($MainSocket)

si ca serverul sa primeasca "messajele" trimise de client trebuie sa adaugi urmatoarea comanda
Code:
$recv = TCPRecv($ConnectedSocket, 2048)
acum tot ce trimiti de la client catre server va fi atribuit variabilei $recv
app 2048 este maxlen adik maximul de caractere care este receptat


acum pentru client
trebuie sa pui din nou comanda
Code:
tcpstartup()

aucum ca sa te conectezi iti trebuie
Code:
$ConnectedSocket = tcpconnect( $g_IP, 65432 )
in cazul tau in loc de $g_IP vei pune guictrlread($Input1) si in loc de port vei pune guictrlread($Input2)

ca sa trimiti la server ceva folosesti urmatoarea comanda
Code:
tcpsend($ConnectedSocket, $data)
variabilei $data ii vei atribui valoarea care vrei sa fie trimisa serverului

dupa ce ai treminat cu conexiunile pui la sfarsitul scriptului(inainte de a se opri)
Code:
tcpclosesocket($MainSocket)
tcpshutdown()
Logged

23-04-2009, 20:03 Twitt ::
Bobyk
*


Mesaje: 242
OfflineOffline


mersi mult:) aproape am reusit
Logged

Să nu te opreşti niciodată din a-ţi pune întrebări, curiozitatea stă la baza existenţei.
-Albert Einstein-
24-04-2009, 20:51 Twitt ::
Bobyk
*


Mesaje: 242
OfflineOffline


Am reusit sa fac ceva....dar se blokeaza...Straight face cred ca e ceva gresit...daca m`ai putea ajuta:)..
clientul => http://www.2shared.com/file/5479896/1bdb8ec8/client.html
serverul => http://www.2shared.com/file/5479904/25d53e9a/server.html
Logged

Să nu te opreşti niciodată din a-ţi pune întrebări, curiozitatea stă la baza existenţei.
-Albert Einstein-
24-04-2009, 21:24 Twitt ::
audy



Mesaje: 4
OfflineOffline


tare Peace sign
Logged
02-05-2009, 19:59 Twitt ::
Andy
*


Mesaje: 722
OfflineOffline


Am scris eu un exemplu pentru cei interesati.
SERVER
Code:
HotKeySet("{PAUSE}","Quit") ;Apasa tasta PAUSE pentru a iesi din aplicatie

Global $SERVER_IP = @IPAddress1
Global $SERVER_PORT = 65432
Global $SERVER

TCPStartup()
$SERVER = TCPListen($SERVER_IP,$SERVER_PORT,4)
If @error Then Exit
Do
$SOCKET = TCPAccept($SERVER)
Sleep(10)
Until $SOCKET > 0

While True
$RECV = TCPRecv($SOCKET,256)
If $RECV <> "" Then
MsgBox(0,"Received data","Client:" & $RECV)
TCPSend($SOCKET,"Your message has arrive")
EndIf
Sleep(20)
WEnd

Func Quit()
TCPCloseSocket($SERVER)
TCPShutdown()
Exit
EndFunc

CLIENT
Code:
HotKeySet("^s","SendMsg") ;CTRL+S pentru a trimite un mesaj la server
HotKeySet("^q","Quit") ;CTRL+Q sa termini aplicatia

Global $SERVER_IP = @IPAddress1
Global $SERVER_PORT = "65432"
Global $CLIENT

TCPStartup()
$CLIENT = TCPConnect($SERVER_IP,$SERVER_PORT)
If @error Then
    MsgBox(0, "Client", "Unable to Contact Server!")
    Exit
Else
TrayTip("Client","Successfully Connected to the Server!",1)
EndIf

While True
$RECV = TCPRecv($CLIENT,256)
If $RECV <> "" Then TrayTip("Server Message",$RECV,1)
Sleep(20)
WEnd

Func SendMsg()
$MESSAGE = InputBox("CLIENT","Type here a message to server:","TEST")
TCPSend($CLIENT,$MESSAGE)
EndFunc

Func Quit()
TCPCloseSocket($CLIENT)
TCPShutdown()
Exit
EndFunc
Logged

When the words fail... music speaks.
04-07-2009, 16:16 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  AutoIt  |  Topic: TCPConnect