Q&A

  • 소켓통신 도저히 원인 파악이 안돼내요? 알수 없는 오류라는데...
procedure TMainC2Form.Button2Click(Sender: TObject);
begin
    if not ClientSocket2.Active then ClientSocket2.Active := true
end;

procedure TMainC2Form.Button1Click(Sender: TObject);
begin
    SendImageData(sender);
end;


procedure TMainC2Form.ClientSocket3Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    Memo1.Lines.Add('파일명 [ ' + SendFileName + ' ] 전송되었습니다!');
    lbStatus.Caption := '전송되었습니다!';
    SendDataCheck := true;
    Timer3.Enabled := False;
    FileLength := 0;
    Memo1.Lines.Clear;
end;

procedure TMainC2Form.ClientSocket3Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    Memo1.Lines.Add('파일명 [ ' + SendFileName + ' ] 전송중...');
    lbStatus.Caption := '전송중입니다...';
    lbStatus.Caption := '파일을 서버로 전송 중...!!!';
    ClientSocket3.Socket.SendBuf(Filelength,SizeOf(FileLength));
    ClientSocket3.Socket.SendStream(FileStream);
    sleep(2000);
end;

procedure TMainC2Form.SendImageData(Sender: Tobject);
var i : integer;
begin
   lbStatus.Caption := '파일을 서버로 전송 중...';
   //SendFileName := 'C:wonbuwonbuimg' + Trim(ListBox1.Items.Strings[14]);
   SendFileName := 'C:wonbuwonbuimgcar_4.jpg';
   if FileExists(SendFileName) then // 파일이 존재하면
   begin
        FileStream   := TFileStream.Create(SendFileName,fmOpenRead);
        FileLength   := FileStream.Size;
       if SendFileName <> '' then
       begin
          for i := 1 to Length(SendFileName) do
            begin
              if (Copy(SendFileName,Length(SendFileName)-i,1) = '') or (Copy(SendFileName,Length(SendFileName)-i,1) = Chr(92)) then
                 SendFileName := Copy(SendFileName,1+Length(SendFileName)-i,Length(SendFileName))
            end;
          ClientSocket2.Socket.SendText(Copy(g_SysDate,1,7) + SendFileName);
          ClientSocket2.Active := False;
          sleep(10);
       end;
       //********************************

      if FileLength > 0 then
       begin
            ClientSocket3.Active := True;
       end;
       ClientSocket3.Active := False;
   end
   else // 파일이 없으면
   begin
      lbStatus.Caption := '파일이 존재하지 않습니다.';
      Exit;
   end;
end;
----------------------------------------
ClientSocket3.Active := true; 만 하면 알수없는 오류가 뜹니다.
ClientSocket3Connect 이벤트가 실행되기전에 에라가 나네요..
도저히 저로써는 원인 파악이 되질 않습니다.
도와주십시요 T.T
0  COMMENTS