Sign in to follow this  
Followers 0
Pakku

Sending files and stuff over tcp to everyone

20 posts in this topic

#1 ·  Posted (edited)

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

Share this post


Link to post
Share on other sites



Works fine and simple! :lmao:

Thanks for this script!

Also a merry christmas! :P

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

how do you find the server IP?


[left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left]

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

*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

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

how do you find the server IP?

the server ip is the ip of the receiver.

Edited by Pakku

Share this post


Link to post
Share on other sites

did you try with the latest beta?

Lar.

:">

:P Larry.

Share this post


Link to post
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

Share this post


Link to post
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. :D

It does hang on Chr(0). Especially with images and video's. Your binary functions really help a lot when you are working with TCP. :D

Share this post


Link to post
Share on other sites

Cool

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

i will look at it in a while.

fist i have to finisch my school work and stuff.

Edited by Pakku

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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?

Check my signature.

Share this post


Link to post
Share on other sites

Bump !

Share this post


Link to post
Share on other sites

Try to send some of 100 mb


-jaenster

Share this post


Link to post
Share on other sites

#17 ·  Posted (edited)

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

Edited by GtaSpider

www.AutoIt.de - Moderator of the German AutoIt Froum

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

also add multiple connections (multiple receivers)

Thanks for digging up such an old topic.

With the recent changes in AutoIt, this piece of code is totally outdated, and is succeeded by many others.

Share this post


Link to post
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
Sign in to follow this  
Followers 0