本帖最后由 jycel 于 2010-1-17 21:03 编辑
今天用到这功能,测试了下,二台机子,发送117MB的文件可以正常发送,发送127MB却不行,我是试的压缩包,大慨最高限制就在117~127之间吧!
不知道AU3对这方面有所限制还是,待高人指点下
解决方法:2楼
接收端都设置了接受字节,发送端忘了,此代码也是论坛上面的……汗!
发送端:#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=b.ico
#AutoIt3Wrapper_outfile=发送.exe
#AutoIt3Wrapper_Res_Comment=文件传送-发送端
#AutoIt3Wrapper_Res_Description=文件传送程序
#AutoIt3Wrapper_Res_LegalCopyright=BY-Jycel
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#NoTrayIcon
$fileini=@ScriptDir & "\file.ini"
_SendFile()
Func _SendFile()
Local $g_IP = IniRead($fileini,"配置信息","接收地址","")
;Local $sendfile = @ScriptDir & "\test.rar"
Local $sendfile = IniRead($fileini,"配置信息","发送文件","")
dim $var = 1
;开始tcp服务
TCPStartup()
;创建一个套接字(socket)连接到已经存在的服务器
$socket = TCPConnect($g_IP, 62345)
If $socket = -1 Then
MsgBox(0, "出错", "连接到服务器出错: " & @error)
Exit
EndIf
$file = FileOpen($sendfile, 16)
;打开读取文件
While 1
$fdata = FileRead($file,1024 * 1000)
If @error = -1 Then ExitLoop
TCPSend($socket, $fdata)
$var += 1
traytip("msg",$var,5)
WEnd
TCPCloseSocket($socket)
TCPshutdown()
EndFunc ;==>_SendFile
[/au3]
接收端:
[au3]
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=a.ico
#AutoIt3Wrapper_outfile=接收.exe
#AutoIt3Wrapper_Res_Comment=文件传送-接收端
#AutoIt3Wrapper_Res_Description=文件传送程序
#AutoIt3Wrapper_Res_LegalCopyright=BY-Jycel
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#NoTrayIcon
$fileini=@ScriptDir & "\file.ini"
_recvFiles()
Func _recvFiles();接收文件
Local $g_IP = @IPAddress1
Local $downfile = IniRead($fileini,"配置信息","保存地址","")
; 开始 TCP 服务
TCPStartup()
; 创建监听套接字(SOCKET)
$MainSocket = TCPListen($g_IP, 62345)
If $MainSocket = -1 Then Exit
$file = FileOpen($downfile, 2 + 8 + 16)
If $file = -1 Then
MsgBox(0, "错误", "无法打开目标文件。")
Exit
EndIf
; 查看客户端连接
;--------------------
Dim $var = 1
While 1
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket >= 0 Then
;MsgBox(0, "", "我的服务器 - 客户端已经连接")
;打开文件准备接收
;开始接收文件
ToolTip("开始接收文件", @DesktopWidth/2, @DesktopHeight/2,"接收提示",1,2)
Sleep(3000)
While 1
$sBuff = TCPRecv($ConnectedSocket, 1024 * 1000)
If @error Then
FileClose($downfile)
Return $downfile
EndIf
;写文件
FileWrite($downfile, $sBuff)
$var += 1
TrayTip("msg", $var, 5)
WEnd
EndIf
WEnd
;关闭套接字,停止TCP服务
TCPCloseSocket($ConnectedSocket)
TCPShutdown()
EndFunc ;==>_recvFiles
|