Jump to content

Recommended Posts

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
Posted

*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.

Posted

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]

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
Posted (edited)

how do you find the server IP?

the server ip is the ip of the receiver.

Edited by Pakku
  • 5 months later...
Posted

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

Posted (edited)

i will look at it in a while.

fist i have to finisch my school work and stuff.

Edited by Pakku
  • 4 weeks later...
Posted

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!
  • 2 months later...
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 Forum

 

  • 8 months later...
Posted

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)

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
  • Recently Browsing   0 members

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