本帖最后由 261869247 于 2010-4-3 04:38 编辑
请问以下这两段论坛网友的代码可以修改成 可以发送文件目录 指定格式的文件吗?
比如 d:\*.bmp
发送D 所有 BMP格式文件吗?
具体要求 1:可以发送文件目录 指定格式的文件
2:发送完毕后客户端关闭 服务器停留在等待连接状态
3:客户端 服务端都不要MsgBox提示吧
接受端$R_ip = "192.168.1.10"
$R_File = "1.rar"
$R_Prot = 12345
$var = _recvFiles($R_ip, $R_File, $R_Prot)
MsgBox(0, "接收端", $var)
Func _recvFiles($R_ip, $R_File, $R_Prot);接收文件
Local $i
TCPStartup(); 开始 TCP 服务
$MainSocket = TCPListen($R_ip, $R_Prot, 100); 创建监听套接字(SOCKET)
If $MainSocket = -1 Then Return "1,创建监听套接字失败"
; 查看客户端连接
While 1
TrayTip("", "等待连接", 3)
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket >= 0 Then
$file = FileOpen($R_File, 2 + 8 + 16);打开文件准备接收
If $file = -1 Then
Return "2,无法打开文件"
Exit
EndIf
While 1;开始接收文件
$i += 1
TrayTip($i, "开始接收文件", 3)
$sBuff = TCPRecv($ConnectedSocket, 1024 * 1000, 1)
If @error Then
FileClose($R_File)
Return 1
TrayTip("", "等待连接", 3)
EndIf
;写文件
FileWrite($R_File, $sBuff)
WEnd
EndIf
WEnd
;Return 1
;TCPCloseSocket($ConnectedSocket);关闭套接字,停止TCP服务
;TCPShutdown()
EndFunc ;==>_recvFiles
发送端$S_ip = "192.168.1.10"
$S_File = "1.rar"
$S_Prot = 12345
$var = _SendFile($S_ip, $S_File, $S_Prot)
MsgBox(0, "", $var)
Func _SendFile($S_ip, $S_File, $S_Prot)
Local $i
;开始tcp服务
TCPStartup()
;创建一个套接字(socket)连接到已经存在的服务器
TrayTip("", "1 连接到服务器", 3)
$socket = TCPConnect($S_ip, $S_Prot)
If $socket = -1 Then
Return "连接到服务器出错: " & @error
Exit
EndIf
$File = FileOpen($S_File, 16)
if $File = -1 Then return "2 文件打开失败"
;打开读取文件
While 1
$i += 1
TrayTip($i, "3 发送文件", 3)
$fdata = FileRead($File,1024 * 1000)
If @error = -1 Then ExitLoop
TCPSend($socket, $fdata)
WEnd
TCPCloseSocket($socket)
TCPShutdown()
Return 1
EndFunc ;==>_SendFile
|