找回密码
 加入
搜索
查看: 2693|回复: 3

[AU3基础] 关于TCP 发送目录所有文件问题

[复制链接]
发表于 2010-4-3 04:34:35 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2010-4-3 07:52:33 | 显示全部楼层
可以的,一步步来就行了
1.先把指定目录的文件类型的文件罗列出来,以备后面循环发送这些文件
2.改下发送接收过程就行了,服务器端不需确认就接受文件,并自动保存到某个目录某个文件名
3.不要MSGBOX显示,就用呗
 楼主| 发表于 2010-4-3 10:51:41 | 显示全部楼层
本帖最后由 261869247 于 2010-4-3 10:56 编辑
可以的,一步步来就行了
1.先把指定目录的文件类型的文件罗列出来,以备后面循环发送这些文件
2.改下发送 ...
llztt 发表于 2010-4-3 07:52



    可以帮我实现下吗?谢谢了?
比如我要传送一个目录下所有的BMP格式图片 该怎么做
继续期待中!
 楼主| 发表于 2010-4-3 16:47:38 | 显示全部楼层
哪位好心人出来帮帮了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 01:16 , Processed in 0.081636 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表