GoFor Posted January 17, 2015 Share Posted January 17, 2015 I have 3 PC (1 laptop 2 PC) and i wan't to do something that: Click Send, write what do you want send and it sending this message to the other my pc. And this is my code: Server: TCPStartup() ;start usługi TCP $mainsocket = TCPListen("25.95.81.129", 32399) ;utworzenie głównego gniazda nasłuchu While 1 ;pętla nasłuchiwania $acceptedSocket = TCPAccept($mainsocket) ;możliwe połączenie do zaakceptowania If $acceptedSocket <> -1 Then ;jeśli $acceptedSocket jest różne od -1, ... $receivedData = TCPRecv($acceptedSocket, 1024) ;jeśli gniazdo jest połączone odbieramy pakiet od klienta MsgBox(64, "Wiadomość otrzymana!", "Otrzymałem wiadomość: " & $receivedData) TCPCloseSocket($acceptedSocket) ;zamknięcie otwartych połączeń EndIf WEnd Client: expandcollapse popup#include <GUIConstants.au3> TCPStartup() ;start usługi TCP Global $serwer1 = '25.95.81.129' Global $serwer2 = Null Global $serwer3 = Null Global $port = '32399' $logowanie=GUICreate("Klient", 250, 100) $zaloguj=GUICtrlCreateButton('Send',70,44,100,20) $serwery=GUICtrlCreateCombo("serwer 1", 70, 22, 100, 20, $CBS_DROPDOWNLIST) ; pierwsza pozycja listy GUICtrlSetData($serwery, "serwer 2|serwer 3", "serwer 1") GuiSetState(@SW_SHOW,"Klient") $panel=GUICreate("Klient - panel", 250, 100) $przeslij=GUICtrlCreateButton('Przeslij',70,44,100,20) $rozlacz=GUICtrlCreateButton('Rozłącz',70,64,100,20) Do $msg = GUIGetMsg() Switch GUICtrlRead($serwery) Case "serwer 1" $wybral = $serwer1 EndSwitch if $msg = $zaloguj Then $wiadomosc=InputBox ( "Klient-serwer", "Write message" , "" , "" , 300 , 300 , 0 , 0) if $wiadomosc = "" Then MsgBox(0,'klient','nie mozesz wyslac pustej wiadomosci') Else $serwer=GUICtrlRead($serwery) if $serwer = 'serwer 1' Then $socket = TCPConnect($serwer1, $port) ;próbuje połączyć się z serwerem i zapisuje nr gniazda w $socked ElseIf $serwer = 'serwer 2' Then $socket = TCPConnect($serwer2, $port) ;próbuje połączyć się z serwerem i zapisuje nr gniazda w $socked ElseIf $serwer = 'serwer 3' Then $socket = TCPConnect($serwer3, $port) ;próbuje połączyć się z serwerem i zapisuje nr gniazda w $socked EndIf If $socket = -1 Then ;jeśli $socket = -1, komunikat o błędach MsgBox(16, "Błąd:", "Połączenie z serwerem nie można ustalić!") EndIf $sendedBytes = TCPSend($socket, $wiadomosc) ;wysyła wiadomość do połączonego gniazda If $sendedBytes = 0 Then ;jeśli wartość zwracana TCPSend(...) = 0 to wystąpił błąd MsgBox(16, "Error", "Pakiet nie może być wysłany.") ;komunikat błędu EndIf TCPCloseSocket($socket) ;zamknięcie otwartego połączenia TCPShutdown() ;koniec usługi TCP EndIf EndIf if $msg = $przeslij Then $wiadomosc=InputBox ( "Klient-serwer", "Wpisz wiadomosc ktora chcesz przekazac" , "" , "" , 300 , 300 , 0 , 0) if $wiadomosc = "" Then MsgBox(0,'klient','nie mozesz wyslac pustej wiadomosci') Else $socket = TCPConnect("127.0.0.1", 65432) ;próbuje połączyć się z serwerem i zapisuje nr gniazda w $socked If $socket = -1 Then ;jeśli $socket = -1, komunikat o błędach MsgBox(16, "Błąd:", "Połączenie z serwerem nie można ustalić!") EndIf $sendedBytes = TCPSend($socket, $wiadomosc) ;wysyła wiadomość do połączonego gniazda If $sendedBytes = 0 Then ;jeśli wartość zwracana TCPSend(...) = 0 to wystąpił błąd MsgBox(16, "Error", "Pakiet nie może być wysłany.") ;komunikat błędu EndIf EndIf EndIf if $msg = $rozlacz Then TCPCloseSocket($socket) ;zamknięcie otwartego połączenia TCPShutdown() ;koniec usługi TCP Exit EndIf Until $msg = $GUI_EVENT_CLOSE Sorry for Polish strings. And when i open in 1 PC serwer, and client and i send to 1server message then it will send it but only 1 time. If i try do this second time it doesnt work (i must restart client). When I open client in second PC and open server in my first PC, i can't connect. What's going on? Help me guys ;/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now