Jump to content

Sending files and stuff over tcp to everyone


Pakku
 Share

Recommended Posts

hi,

thanks to Larry (see his topic ) i have made a sender and a receiver to send files from the sender over tcp to the receiver.

bugs reports and stuff are welcome!

sender

#include<GUIConstants.au3>

GUICreate("Send",200,120)
$File = GUICtrlCreateInput("",10,10,100,20)
$fileopendialog = GUICtrlCreateButton(" ... ",120,10,40,20)
$serverinput = GUICtrlCreateInput("",10,40,100,20)
GUICtrlCreateLabel("Server-IP",120,40)
$ok = GUICtrlCreateButton(" Send ",40,80,40,20)
GUISetState()

While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then
        Exit
    EndIf
    If $msg = $fileopendialog Then
        $Fileopen = FileOpenDialog("File open",@desktopdir,"All (*.*)")
        GUICtrlSetData($File,$Fileopen)
    EndIf
    If $msg = $ok Then
        Call("sendfile")
    EndIf
WEnd

Func sendfile()

Local $szConfirm = ""
Local $sock = -1
Local $data

$server = GUICtrlRead($serverinput)
$FileSent = GUICtrlRead($File)

TCPStartup()
$sock = TCPConnect($server,50911)
$data = FileRead($FileSent,FileGetSize($FileSent))
SplashTextOn("Send","Sending ...",200,40)
TCPSend($sock,FileGetSize($FileSent) & "," & $data)
SplashOff()
While 1
    $szConfirm = TCPRecv($sock,128)
    If @error Or StringLen($szConfirm) Then
        TCPShutdown()
        ExitLoop
    EndIf
WEnd

EndFunc

receiver

Dim $iMainSocket = -1, $iSocket = -1
Dim $buffer = ""
Dim $bytes = -1
Dim $iRet = -1

TCPStartup()

$iMainSocket = TCPListen(@IPAddress1,50911)

While 1
    If $iSocket = -1 Then
        $iRet = TCPAccept($iMainSocket)
        If Not @error Then $iSocket = $iRet
    Else
        $buffer &= TCPRecv($iSocket,4096)
        If $bytes = -1 And StringInStr($buffer,",") Then
            $bytes = StringLeft($buffer,StringInStr($buffer,",")-1)
            $buffer = StringTrimLeft($buffer,StringInStr($buffer,","))
        Else
            SplashTextOn("Receive","Receiving ...",200,40)
            If StringLen($buffer) = $bytes Then
                SplashOff()
                $FileReceived = FileSaveDialog("File save",@desktopdir,"All (*.*)")
                ExitLoop
            EndIf
        EndIf
    EndIf
WEnd

FileDelete($FileReceived)
FileWrite($FileReceived,$buffer)

MsgBox(4096,"","Transfer Complete")

TCPShutdown()

p.s. it requires beta!

merry christmas!

http://www.autoitscript.com/fileman/users/arjan%20staring/Transfer%20over%20internet.zip

Edited by Pakku
Link to comment
Share on other sites

*sigh*

From what I can tell...yes this will send the file, but it will not send it in its original form causing it unable to run on the other end. You have to be able to open it and binary and keep it in this form as it is sent, and keep it in the excact form when it is written yet again.

Link to comment
Share on other sites

*sigh*

From what I can tell...yes this will send the file, but it will not send it in its original form causing it unable to run on the other end. You have to be able to open it and binary and keep it in this form as it is sent, and keep it in the excact form when it is written yet again.

what do you mean, when you send the file, the only thing the receiver has to know what the extension is like exe or jpg or what ever. when the sender sends hello.exe, the reciever can save ik like *.exe and afther it is saved, it is possible to open or run or what ever.

if you don't mean this, can you please ask your question in an other way?

Edited by Pakku
Link to comment
Share on other sites

how do you find the server IP?

the server ip is the ip of the receiver.

Edited by Pakku
Link to comment
Share on other sites

If you sent an exe, wouldn't it hang on any Chr(0)'s? If so please check out my binary functions in my signature. I believe they might help you greatly. :P

Link to comment
Share on other sites

  • 5 months later...

i will look at it in a while.

fist i have to finisch my school work and stuff.

Edited by Pakku
Link to comment
Share on other sites

  • 4 weeks later...

Hey Arjan this is Great..

Im not so good to Tcp stuff so i ask you would it be possible to change the code so the receiver is the script which tcpconnecter and the sender is the script which accepts?

My Scripts:Radioblog Club Music DownloaderOther stuff:Fun movieIm serious read the help file it helps :PFight 'Till you drop. Never stop, You Cant give up. Til you reach the top Fight! you’re the best in town Fight!
Link to comment
Share on other sites

  • 2 months later...
  • 8 months later...

Hi!

I've written a script, too. I called it "File Over TCP"..You can find it here

i will write it in english when i've time(mom it's in german)!

So long Spider

also add multiple connections (multiple receivers)

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...