请问我使用TServerSocket控件能不能接受FTP传来的信息呢???
如果我将TServerSocket的端口设置成21,监听的IP是本机,然后在ftp中输入ftp://(本机IP)这样我的TServerSocket可以接受到信息吗??
我试了一下,好象不能接受到呀!!!!
问题点数:0、回复次数:6Top
1 楼nyf1220(我是党员----不过听说最近风声紧,打算换名字)回复于 2004-12-03 17:48:41 得分 0
不行,
你必须启动FTP服务,而不是简单的把断口改了Top
2 楼halfdream(哈欠)回复于 2004-12-03 19:43:25 得分 0
当然能接受.
Top
3 楼bomdy(昏昏欲睡的虫子)回复于 2004-12-03 20:04:15 得分 0
可以,不过你需要自己处理ftp协议Top
4 楼halfdream(哈欠)回复于 2004-12-03 20:07:50 得分 0
楼主之所以没有接受FTP传来的信息...呵呵..原因很简单.
当客户端连接后,最初先是客户端等待服务端发出状态提示.
具体你去看一下FTP协议内容吧.
Top
5 楼halfdream(哈欠)回复于 2004-12-03 20:40:19 得分 0
比如,你这样写:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
s:='hello!!!'#13#10;
Socket.SendText(s);
end;Top
6 楼songbird(快乐鸟)回复于 2004-12-15 09:58:48 得分 0
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;Top




