如果我将TServerSocket的端口设置成21,监听的IP是本机,然后在ftp中输入ftp://(本机IP)这样我的TServerSocket可以接受到信息吗??
我试了一下,好象不能接受到呀!!!!

解决方案 »

  1.   

    不行,
    你必须启动FTP服务,而不是简单的把断口改了
      

  2.   

    可以,不过你需要自己处理ftp协议
      

  3.   

    楼主之所以没有接受FTP传来的信息...呵呵..原因很简单.当客户端连接后,最初先是客户端等待服务端发出状态提示.具体你去看一下FTP协议内容吧.
      

  4.   

    比如,你这样写:
    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    var
      s:string;
    begin
      s:='hello!!!'#13#10;
      Socket.SendText(s);
    end;
      

  5.   

    procedure TForm1.TcpClientRead(Sender: TObject; Socket: TCustomWinSocket);
    var
        ReceivedText : string;
        MsgType : Integer;
        MsgContent : string;
    begin
        ReceivedText := Socket.ReceiveText();
        Memo1.Text := Memo1.Text + ReceivedText;
        MsgType := StrToInt(LeftStr(ReceivedText, 3));
        case state of
        0:
            case MsgType of
            220:
            begin
                state := 1;
                Socket.SendText('USER xxx'+chr(13)+chr(10));
            end;
            end;
        1:
            case MsgType of
            331:
            begin
                state := 2;
                Socket.SendText('PASS xxx'+chr(13)+chr(10));
            end;
            end;
        2:
            case MsgType of
            530:
            begin
                state := 0;
                MessageDlg('Can not log in!',mtinformation,[mbok],0);
            end;
            230:
            begin
                state := 3;
                Socket.SendText('LIST'+chr(13)+chr(10));
            end;
            end;
        end;end;