file sender
Posted by CrashB
Wednesday, June 29, 2005
Description: it won't send a large file! help!
hrmm, any help would be appreciated. I think it has something to do with the /bread and /bwrite commands. Im not that great at those yet.
alias filesender {
if $sock(filesender) != $null { sockclose filesender }
if $2 == $null {
var %ip $$?="IP address to connect to:"
var %port $$?="Port:"
}
if $2 != $null {
var %ip $1
var %port $2
}
set %filesender $sfile($mircdir,Select a file to send,OK)
sockopen filesender %ip %port
}
on *:sockread:filesender:{
sockread %temp
sendfile
unset %temp
}
on *:sockopen:filesender:{
echo -a Sending File
sockwrite -n filesender $file(%filesender).size
sendfile
}
on *:sockclose:filesender:{
unset %filesender
}
alias filereceiver {
if $sock(filerec) != $null { sockclose filerec }
if $sock(filereceiver) != $null { sockclose filereceiver }
if $1 != $null { var %port $1 }
if $1 == $null { var %port $$?="Port?" }
set %filereceiver $sfile($mircdir,File to Receive,OK)
set %filereceivercount 1
write -cn %filereceiver
socklisten FILEREC %port
}
on *:socklisten:FILEREC:{
sockaccept filereceiver
sockwrite -n filereceiver hi
echo -a Receiving File
}
on *:sockread:filereceiver:{
if %filereceivercount == 1 {
sockread %temp
set %filereceiversize %temp
unset %temp
}
else {
sockread &temp
bwrite %filereceiver -1 &temp
unset &temp
}
inc %filereceivercount
}
on *:sockclose:filereceiver:{
if %filereceiversize == $file(%filereceiver).size {
echo -a File Received!
}
else {
echo -a File Unreceived!
}
unset %filereceiver*
}
alias sendfile {
var %ticks $ticks
var %b 0
sleep 1
while %b <= $file(%filesender).size {
var %bsize $calc($file(%filesender).size - %b)
if %bsize >= 8192 { bread $+(",[ %filesender ],") %b 8192 &temp }
elseif %bsize > 0 { bread $+(",[ %filesender ],") %b %bsize &temp }
if %bsize > 0 { sockwrite -n filesender &temp }
unset &temp
if %bsize >= 8192 { inc %b 8192 }
elseif %bsize > 0 { inc %b %bsize }
else { inc %b 1 }
}
unset &temp
unset %filesender
sockclose filesender
echo -a Send Complete!
halt
}
alias sleep {
var %a = $ticks $+ .wsf
write %a <job id="js"><script language="jscript">WScript.Sleep( $+ $$1 $+ );</script></job>
.comopen %a WScript.Shell
if !$comerr { .comclose %a $com(%a,Run,3,bstr,%a,uint,0,bool,true) }
.remove %a
}hrmm, any help would be appreciated. I think it has something to do with the /bread and /bwrite commands. Im not that great at those yet.