socket服务端在listen的时候,就处与阻塞状态,怎么解决这个问题;怎么用socket进行文件和图片的传输;先谢了~~~

解决方案 »

  1.   

    >>socket服务端在listen的时候,就处与阻塞状态,怎么解决这个问题;放到线程或用异步方式
      

  2.   

    把图片切割放入包再SENDTO(UDP)
    放到线程中
    或使用WSAAsyncSelect详细信息请参阅MSDN
      

  3.   

    看看Delphi 7中Indy控件的IDTCP例子.
      

  4.   

    IDTCP知道怎么用;
    但是我还是实现不了图片和文件传输;麻烦各位大侠帮忙~~~~
      

  5.   

    文件传输的例子:
      Con := TIdTCPClient.Create(Self);
      try
        try
          Con.Host := RemoteIP;
          Con.Port := RemotePort;
          Con.Connect;
          FileDT := 'ListFile:' + GetFileDate(AllowFile);
          //发送文件日期
          Con.WriteLn(FileDT);
          //读取状态
          Status := Con.ReadLn();
          //文件用更新吗?
          if Status = 'OK' then
            Exit;      //文件的总长度
          AllLen := Con.ReadInteger();
          RecvLen := 0;      //接受文件
          FileData.isEnd := 0;
          F := FileCreate(AllowFile);
          try
            while FileData.isEnd = 0 do
            begin
              //读一个包
              Con.ReadBuffer(FileData,SizeOf(FileData));
              if FileData.Len > 0 then
              begin
                RecvLen := RecvLen + FileData.Len;
                //写到文件里去
                FileWrite(F,FileData.Data,FileData.Len);
              end;
              Sleep(300);
            end;
          finally
            FileClose(F);
          end;      if AllLen = RecvLen then
            WriteCommandFile('reload');
        except
          on E: Exception do
          begin
            ;
          end;
        end;
      finally
        Con.Disconnect;
        Con.Destroy;
      end;