waltv7 Posted December 19, 2008 Share Posted December 19, 2008 How do I detect a computer connecting to my server(code below) and then TCPSend the contents of welcome.txt file to the person that connected. The person connecting will be useing a standard tellnet or MUD client to connect to the server. expandcollapse popupGlobal $Recvm Global $CurrentSocket = 0 Global $ListenSocket ;#include <GUIConstantsEx.au3> ; Create a GUI for messages ;============================================== ;$GOOEY = GUICreate("My Server (IP: " & $szIPADDRESS & ")", 300, 200) ;$edit = GUICtrlCreateEdit("", 10, 10, 280, 180) $TCP = TCPStartup() If $TCP = 0 Then MsgBox(0, "Error", "Unable to startup TCP Services!") Exit EndIf $ListenSocket = TCPListen(@IPAddress1,1777,16) If $ListenSocket = -1 Then MsgBox(0, "ERROR", "Unable to start listening on port 1777") Exit EndIf While 1 $ConnectedSocket[$CurrentSocket] = TCPAccept($ListenSocket) If $ConnectedSocket[$CurrentSocket] <> -1 Then $CurrentSocket = $CurrentSocket + 1 EndIf For $INDEX = 0 To 15 If $ConnectedSocket[$INDEX] <> -1 Or $ConnectedSocket[$INDEX] <> "" Then $Recv = TCPRecv($ConnectedSocket[$INDEX],1024) If $Recv <> "" Then MsgBox(0,"CON#" & $INDEX,$Recv) EndIf EndIf Next Sleep(20) WEnd Link to comment Share on other sites More sharing options...
cppman Posted December 19, 2008 Share Posted December 19, 2008 Right after you accept the client, you can just use TCPSend to send information to that client.While 1 $ConnectedSocket[$CurrentSocket] = TCPAccept($ListenSocket) If $ConnectedSocket[$CurrentSocket] <> -1 Then $CurrentSocket = $CurrentSocket + 1 EndIf ; -------- ADD WHATEVER YOU WANT TO SEND HERE TCPSend($ConnectedSocket[$CurrentSocket], FileRead("welcome.txt")) ; ------------------------------------------------- For $INDEX = 0 To 15 If $ConnectedSocket[$INDEX] <> -1 Or $ConnectedSocket[$INDEX] <> "" Then $Recv = TCPRecv($ConnectedSocket[$INDEX],1024) If $Recv <> "" Then MsgBox(0,"CON#" & $INDEX,$Recv) EndIf EndIf Next Sleep(20) WEnd Miva OS Project Link to comment Share on other sites More sharing options...
waltv7 Posted December 19, 2008 Author Share Posted December 19, 2008 Right after you accept the client, you can just use TCPSend to send information to that client. While 1 $ConnectedSocket[$CurrentSocket] = TCPAccept($ListenSocket) If $ConnectedSocket[$CurrentSocket] <> -1 Then $CurrentSocket = $CurrentSocket + 1 EndIf ; -------- ADD WHATEVER YOU WANT TO SEND HERE TCPSend($ConnectedSocket[$CurrentSocket], FileRead("welcome.txt")) ; ------------------------------------------------- For $INDEX = 0 To 15 If $ConnectedSocket[$INDEX] <> -1 Or $ConnectedSocket[$INDEX] <> "" Then $Recv = TCPRecv($ConnectedSocket[$INDEX],1024) If $Recv <> "" Then MsgBox(0,"CON#" & $INDEX,$Recv) EndIf EndIf Next Sleep(20) WEnd Just tested this and I didn't get the message from welcome.txt on the client. Link to comment Share on other sites More sharing options...
z0mgItsJohn Posted December 20, 2008 Share Posted December 20, 2008 Heres A Really Good Example Of A Working TCP Server And Client.. ; Hope It Helps! Source : Server.Au3 expandcollapse popup; Start Tcp TcpStartUp () ; Set Variables Global $Connected_Socket = ('-1') Global $IP = @IpAddress1 ; This Is The Local IP.. Global $Port = ('1234') Global $Server = TcpListen ($IP, $Port, '1') ; Check For Error.. If $Server = ('-1') Then Exit MsgBox ('16','Error Code 01','Cannot Start Server On IP : ' & $IP & ', Port : ' & $Port, '0') ; Wait For Client Connection.. _Accept_Connection () ; Wait.. Sleep ('1000') ; Send Data From Welcome.txt If FileExists ('Welcome.txt') Then $Welcome_Msg = FileRead ('Welcome.txt') Else $Welcome_Msg = ('Welcome.. To My Server') EndIf TcpSend ($Connected_Socket, $Welcome_Msg) ; Wait.. Sleep ('2000') ; Tell The Client To Exit TcpSend ($Connected_Socket, '/Command.Exit') ; Disconnect Client.. " Close Connection " TcpCloseSocket ($Connected_Socket) ; Exit.. Exit Func _Accept_Connection () Do Sleep ('10') $Connected_Socket = TcpAccept ($Server) Until $Connected_Socket <> ('-1') EndFuncoÝ÷ Ù*.Ç'§´·jëh×6; Start Tcp TcpStartUp () ; Set Variables Global $Connected_Socket = ('-1') Global $IP = @IpAddress1 ; This Is The Local IP.. Global $Port = ('1234') Global $Connect = TcpConnect ($IP, $Port) ; Check For Error.. If $Connect = ('-1') Then Exit MsgBox ('16','Error Code 01','Cannot Connect To Server On.. IP : ' & $IP & ', Port : ' & $Port, '0') While ('1') ; Make CPU Usage 0.. Sleep ('150') ; Recv Data.. $Data = TcpRecv ($Connect, '1000') ; Filter For " /Command.Exit " If StringInStr ($Data, '/Command.Exit') = '1' Then TcpCloseSocket ($Connect) Exit ; Else Display Data ElseIf $Data <> '' Then MsgBox ('0','Notice - Data','Server Say(s) : ' & $Data, '0') EndIf WEnd If You Need More Help.. Post A Message, Or If You Have An Msn Add Me : Pk4Fun@Live.Com Latest Projects :- New & Improved TCP Chat 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