261869247 发表于 2010-4-3 04:34:35

关于TCP 发送目录所有文件问题

本帖最后由 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

llztt 发表于 2010-4-3 07:52:33

可以的,一步步来就行了
1.先把指定目录的文件类型的文件罗列出来,以备后面循环发送这些文件
2.改下发送接收过程就行了,服务器端不需确认就接受文件,并自动保存到某个目录某个文件名
3.不要MSGBOX显示,就用呗

261869247 发表于 2010-4-3 10:51:41

本帖最后由 261869247 于 2010-4-3 10:56 编辑

可以的,一步步来就行了
1.先把指定目录的文件类型的文件罗列出来,以备后面循环发送这些文件
2.改下发送 ...
llztt 发表于 2010-4-3 07:52 http://www.autoitx.com/images/common/back.gif


    可以帮我实现下吗?谢谢了?
比如我要传送一个目录下所有的BMP格式图片 该怎么做
继续期待中!

261869247 发表于 2010-4-3 16:47:38

哪位好心人出来帮帮了
页: [1]
查看完整版本: 关于TCP 发送目录所有文件问题