» Utilizator
Salut, vizitatorule!

SkullBox este o comunitate formata din programatori si administratori de sisteme sau retele care iti sta la dispozitie cand ai o problema legata de calculatoare. Daca esti un utilizator existent, autentifica-te.

Daca nu te-ai inregistrat inca pe forum, alatura-te noua astfel marind comunitatea si ajutandu-i pe cei care au nevoie de informatii.

Daca te-ai inregistrat dar inca nu ai primit codul de activare, il poti cere aici.




Autentifica-te cu numele de utilizator si parola pentru a putea posta pe forum sau pentru a accesa ariile disponibile doar utilizatorilor inregistrati.
» Promovam
» Parteneri » Statistici
  • 59713 de mesaje.
  • 7146 de topicuri.
  • 999 de utilizatori.
  •  
  • raymond_germanos e ultimul utilizator inregistrat.
[Detalii]

 
SkullBox Forum  |  Development  |  AutoIt  |  Topic: TCPConnect
Pagini: [1]
Print
TCPConnect [765 afisari]
Bobyk
*


Mesaje: 187
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: 159
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: 187
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: 56
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: 187
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: 187
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: 492
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

Intel Inside - Idiots Outside
04-07-2009, 16:16 Twitt ::
Reclama
VIP

Hosting

Mesaje: 25.90
OnlineOnline

WWW
 

   Pe ABCDomenii: 250MB spatiu + 20GB trafic + 5 subdomenii = 0.95 €
 
 

The problem with troubleshooting is that trouble shoots back.
Azi 
Pages: [1]
Print
SkullBox Forum  |  Development  |  AutoIt  |  Topic: TCPConnect
Jump to: