;(Клиент)
$g_IP = "127.0.0.1"
$sSelectedFile = FileOpenDialog("Please select file...", @ScriptDir, "All (*.*)",1); отображаем диалог выбора файла
$sSelectedFileName = StringMid($sSelectedFile, StringInStr($sSelectedFile, "\", 0, -1) + 1) ; отделяем имя файла
; Start The TCP Services
;==============================================
TCPStartUp()
; Connect to a Listening "SOCKET"
;==============================================
$socket = TCPConnect( $g_IP, 80 )
If $socket = -1 Then Exit
TCPSend ($socket, $sSelectedFileName)
Sleep (1000)
$hSelectedFile = FileOpen ($sSelectedFile, 16) ; сначала открываем файл для чтения в бинарном режиме
While 1
$Data = FileRead($hSelectedFile, 100*1024); read 100 kb of data
If @error = -1 Then ExitLoop
TCPSend ($socket, $Data)
WEnd
FileClose ($hSelectedFile);закрываем
;(Сервер)
$g_IP = "127.0.0.1"
; Start The TCP Services
;==============================================
TCPStartUp()
; Create a Listening "SOCKET"
;==============================================
$MainSocket = TCPListen($g_IP, 80, 2)
If $MainSocket = -1 Then Exit
While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
While 1
$sSelectedFileName = TCPRecv($ConnectedSocket, 2048)
If @error Then ExitLoop
If $sSelectedFileName <> "" Then
$hWrite = FileOpen(@ScriptDir & "\" & $sSelectedFileName, 16+2); Create file to write binary data
While 1
$xData = TCPRecv($ConnectedSocket, 100*1024, 1); Read 100 kb of data
If @error Then ExitLoop
If $xData <> "" Then
FileWrite($hWrite, $xData)
EndIf
WEnd
FileClose ($hWrite);закрываем
ExitLoop
EndIf
WEnd
EndIf
Wend
Func SendFile()
$ip__ = '192.168.0.6'
$port__ = 59882
$sSelectedFile = FileOpenDialog("Please select file...", @ScriptDir, "All (*.*)", 1); отображаем диалог выбора файла
$socket = TCPConnect($ip__, $port__)
If $socket = -1 Then Exit
TCPSend($socket, 'file')
Sleep(1000)
$hSelectedFile = FileOpen($sSelectedFile, 16) ; сначала открываем файл для чтения в бинарном режиме
$fileget = FileGetSize($sSelectedFile)
$filegeta = 0
ProgressOn("Progress Meter", "Increments every second", "0 percent")
For $i = $fileget / 100 To $fileget Step $fileget / 100
$Data = FileRead($hSelectedFile, 100 * 1024)
If $Data = -1 Then ExitLoop
TCPSend($socket, $Data)
ProgressSet($i, $i & " percent")
Sleep(500)
Next
ProgressOff()
FileClose($hSelectedFile);закрываем
TCPCloseSocket($socket)
EndFunc ;==>SendFile
Цикл For не выполняется, если:
start > stop и step > 0 или
start < stop и step < 0
$g_IP = "127.0.0.1"
$sSelectedFile = FileOpenDialog("Please select file...", @ScriptDir, "All (*.*)",1); отображаем диалог выбора файла
$sSelectedFileName = StringMid($sSelectedFile, StringInStr($sSelectedFile, "\", 0, -1) + 1) ; отделяем имя файла
; Start The TCP Services
;==============================================
TCPStartUp()
; Connect to a Listening "SOCKET"
;==============================================
$socket = TCPConnect( $g_IP, 80 )
If $socket = -1 Then Exit
TCPSend ($socket, $sSelectedFileName)
Sleep (1000)
$hSelectedFile = FileOpen ($sSelectedFile, 16) ; сначала открываем файл для чтения в бинарном режиме
$fileget = FileGetSize($sSelectedFile)
$Sec = $fileget/102400
$precent = $Sec/100
ProgressOn("Progress Meter", "Increments every second", "0 percent")
$i = 0
While 1
$Data = FileRead($hSelectedFile, 100*1024); read 100 kb of data
If @error = -1 Then ExitLoop
TCPSend ($socket, $Data)
$i = $i + 1
ProgressSet( Int($i/$precent), Int($i/$precent) & " percent")
WEnd
FileClose ($hSelectedFile);закрываем
ProgressSet( 100, 100 & " percent")
ProgressOff()
Int($i/$precent)
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
$g_IP = "127.0.0.1"
TCPStartUp()
$MainSocket = TCPListen($g_IP, 80, 2)
If $MainSocket = -1 Then Exit
While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
While 1
$sSelectedFileName = TCPRecv($ConnectedSocket, 2048)
If @error Then ExitLoop
If $sSelectedFileName <> "" Then
$senddata = StringSplit ($sSelectedFileName, ":")
GUICreate("Прием файлов", 500, 135)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlCreateLabel ("Принимаем файл :" & @CR & @CR & @ScriptDir & "\" & $senddata[2], 10, 10, 480, 50)
$progressbar = GUICtrlCreateProgress (10,70,480,20)
$progress = GUICtrlCreateLabel ("Принято 0 процентов", 10, 100, 200, 30)
GUICtrlSetColor( -1, 0xFF0000)
GUISetState ()
$hWrite = FileOpen(@ScriptDir & "\" & $senddata[2], 16+2); Create file to write binary data
$i = 0
AdlibRegister ("progres", 1000)
func progres()
GUICtrlSetData ($progressbar,Int($i/$senddata[1]))
If Int($i/$senddata[1]) = 100 Then
GUICtrlSetData ($progress,"Принято 100 процентов")
GUICtrlSetColor( -1, 0x00FF00)
EndIf
GUICtrlSetData ($progress,"Принято " & Int($i/$senddata[1]) & " процентов")
EndFunc
While 1
$xData = TCPRecv($ConnectedSocket, 100*1024, 1); Read 100 kb of data
If @error Then
FileClose ($hWrite)
FileDelete (@ScriptDir & "\" & $senddata[2])
MsgBox(16, "Передачи файлов", "Ошибка приема", 10)
Exit
EndIf
If $xData <> "" Then
FileWrite($hWrite, $xData)
$i = $i + Number(BinaryLen($xData)/102400)
EndIf
WEnd
EndIf
WEnd
EndIf
Wend
Func _Exit()
If Int($i/$senddata[1]) < 100 Then
FileClose ($hWrite)
FileDelete (@ScriptDir & "\" & $senddata[2])
MsgBox(64, "Прием файлов", "Прием отменен", 10)
Exit
Else
AdlibUnRegister ("progres")
FileClose ($hWrite);закрываем
Exit
EndIf
EndFunc
#include <GUIConstants.au3>
$g_IP = "127.0.0.1"
$sSelectedFile = FileOpenDialog("Please select file...", @ScriptDir, "All (*.*)",1); отображаем диалог выбора файла
If @error Then Exit
$sSelectedFileName = StringMid($sSelectedFile, StringInStr($sSelectedFile, "\", 0, -1) + 1) ; отделяем имя файла
TCPStartUp()
$socket = TCPConnect( $g_IP, 80 )
If $socket = -1 Then Exit
$hSelectedFile = FileOpen ($sSelectedFile, 16) ; сначала открываем файл для чтения в бинарном режиме
$fileget = FileGetSize($sSelectedFile)
$Sec = $fileget/102400
$precent = $Sec/100
TCPSend ($socket, $precent & ":" & $sSelectedFileName)
Sleep (500)
GUICreate("Передача файлов", 500, 135)
GUICtrlCreateLabel ("Передаем файл :" & @CR & @CR & $sSelectedFile, 10, 10, 480, 50)
$progressbar = GUICtrlCreateProgress (10,70,480,20)
$progress = GUICtrlCreateLabel ("Передано 0 процентов", 10, 100, 200, 30)
GUICtrlSetColor( -1, 0xFF0000)
GUISetState ()
$i = 0
AdlibRegister ("progres", 1000)
func progres()
GUICtrlSetData ($progressbar,Int($i/$precent))
GUICtrlSetData ($progress,"Принято " & Int($i/$precent) & " процентов")
EndFunc
While 1
$Data = FileRead($hSelectedFile, 100*1024); read 100 kb of data
If @error = -1 Then ExitLoop
TCPSend ($socket, $Data)
If @ERROR Then
MsgBox(16, "Передача файлов", "Ошибка передачи", 10)
Exit
EndIf
$i = $i + 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then
MsgBox(64, "Передача файлов", "Передача отменена", 10)
Exit
EndIf
WEnd
AdlibUnRegister ("progres")
FileClose ($hSelectedFile);закрываем
GUICtrlSetData ($progressbar,100)
GUICtrlSetData ($progress,"Передано 100 процентов")
GUICtrlSetColor( -1, 0x00FF00)
While 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd
CreatoR сказал(а):Dream-52
Мне кажется тема более чем исчерпана, по другим вопросам в новую тему.
Решено?
В названий темы, и в теле первого сообщения это не указано, т.ч тема решена.К сожалению нет...может ты подскажешь? нужно просто коректный метод отображение прогресса
Увы, но не могу, я вижу в примерах то что ты просил, а “не совсем то что нужно” ничего не объясняет, помоему тебе дали придостаточно информаций для решения твоих вопросов, так же не забывай о справке, где есть примеры построения прогресса.В приведенных примерах ..не совсем то что нужно - думаю ты сомной тут согласишся
CreatoR сказал(а):Dream-52 [?]
В названий темы, и в теле первого сообщения это не указано, т.ч тема решена.К сожалению нет...может ты подскажешь? нужно просто коректный метод отображение прогресса
Увы, но не могу, я вижу в примерах то что ты просил, а “не совсем то что нужно” ничего не объясняет, помоему тебе дали придостаточно информаций для решения твоих вопросов, так же не забывай о справке, где есть примеры построения прогресса.В приведенных примерах ..не совсем то что нужно - думаю ты сомной тут согласишся
Не знаю кто такой “Кретор”, но если речь обо мне, то в офлайн я могу быть ещё злее ;). Всё зависит от людей вокруг, хотя у меня обычно с людьми отношения очень хорошие, я почти ни с кем не ссорюсь.Кретор злой