FTP方面的问题????(在线等)

tcpcxg 2003-11-07 11:38:00
各位大虾,小弟初涉cb,开始学做网络方面的编程。遇见如下问题,请高手大虾指点。我发现cb自带的例子(目录是:Borland\CBuilder5\Examples\FastNet\Ftp)中,远程主机ftp.inprise.com不存在,但是它的所有功能都能正常执行。我是用IE,ftp命令,ping工具进行测试的。而我自己把它的远程主机改成一个确实存在的,可以用的,程序就执行不下去。是我编译环境的问题?还是……
请高手大虾帮帮忙,非常感谢!!
...全文
33 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsys2 2003-11-10
  • 打赏
  • 举报
回复
这是我机子的问题,还是c++ builder环境的问题??

都不是,是代码没写全和你的基础太差的问题。

//---------------------------------------------------------------------------

#ifndef MyFirsSDKAppCppH
#define MyFirsSDKAppCppH
//---------------------------------------------------------------------------
#endif

把上面的东西存到:

MyFirsSDKAppCpp.h

下面的东西保存到testapi.cpp
(注意去掉include<vcl.h>

//---------------------------------------------------------------------------
#include <windows.h>
#pragma hdrstop
#include "MyFirsSDKAppCpp.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM) ; //窗口消息循环函数向前声明
//---------------------------------------------------------------------------

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow)
{ //初始化窗口类
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
char classname[]="窗口"; //窗口类名
char Title[]="My_SDK_TEST_Window"; //窗口标题名
//窗口类的定义
wndclass.lpfnWndProc=WndProc; //窗口处理函数为WndProc
wndclass.cbClsExtra=0; //窗口类无扩展
wndclass.cbWndExtra=0; //窗口实例无扩展
wndclass.hInstance=hInstance,
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色
wndclass.lpszMenuName=NULL; //窗口中无菜单
wndclass.lpszClassName=classname;
wndclass.style=0; //窗口类型为缺省类型

if(!RegisterClass(&wndclass)) //窗口类注册
{
MessageBeep(0); //如果注册失败则发出警告声音
return false;
}
//-------------------------------------------------------------------------------------
hwnd=CreateWindow(
classname, //窗口类名
Title, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
10, //窗口左上角坐标为缺省值
19,
250,
480, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL //不使用该值
);

ShowWindow(hwnd,nCmdShow); //显示窗口
UpdateWindow(hwnd); //绘制用户区
while( GetMessage(&msg,NULL,0,0)) //消息循环
{
TranslateMessage(&msg); //键盘消息转换
DispatchMessage (&msg); //分发消息
}
return msg.wParam; //消息循环结束即程序终止时将信息返回系统
}

//------------------------------------------------------------------------------------

LRESULT CALLBACK WndProc(HWND hwnd,UINT message ,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY: PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息
default: return DefWindowProc(hwnd,message,wParam,lParam); //默认时采用系统消息默认处理函数
}
return(0);
}


tcpcxg 2003-11-10
  • 打赏
  • 举报
回复
netsys2(来电),对不起,这两天我机子出毛病。我刚才调试了你给的程序,出现如下提示:1、[c++ Error] TestAPI.cpp(13):E2209 Unable to open include file "MyFirstSDKAppCpp.h";2、[c++ Warning]TestAPI.cpp(77):W8066 Unreachable.code;
这是我机子的问题,还是c++ builder环境的问题??麻烦你给说说。再次感谢!
netsys2 2003-11-10
  • 打赏
  • 举报
回复
2这个警告

没有关系,不管它,或者修改一下:


LRESULT CALLBACK WndProc(HWND hwnd,UINT message ,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY: PostQuitMessage(0); //调用PostQuitMessage发出
WM_QUIT消息
break;
}
return DefWindowProc(hwnd,message,wParam,lParam); //默认时采用系统消息默认处理函数
}

tcpcxg 2003-11-10
  • 打赏
  • 举报
回复
我试过了发现还有2这个警告。谢谢!
netsys2 2003-11-10
  • 打赏
  • 举报
回复
你的毛病在于太懒惰,你根本没看我上面的回复!

我有试了一次,没有问题,
tcpcxg 2003-11-10
  • 打赏
  • 举报
回复
netsys2(来电) ,小弟这两天机子出毛病。我刚才调试你上面给的程序,出了两个如下提示:
1、[c++Error] TestAPI.cpp(13):E2209 Unable to open include file "MyFirstSDKAppCpp.h"; 2、[c++ Warning] TestAPI.cpp(77):W8066 Unreachable code。麻烦你给说说,小弟再次感谢!
netsys2 2003-11-07
  • 打赏
  • 举报
回复
远程主机ftp.inprise.com不存在,但是它的所有功能都能正常执行

---->那是不可能的!

而我自己把它的远程主机改成一个确实存在的,可以用的,程序就执行不下去
---->那是你的程序的问题!你的远程主机开FTP服务没有?端口是否为21
netsys2 2003-11-07
  • 打赏
  • 举报
回复
小弟还想让你介绍几本关于cb网络编程的好书和一些网上资源。小弟再次感谢!!


----->

网上资源:
就在本论坛上就看到了!
在论坛的网络通信版块去找“已解决”“精华区”,看看别人怎么做的。

还可以在“专题开发”--“网络通信版块”去找。

至于书籍:
到书店去找找吧,这方面书很多。
netsys2 2003-11-07
  • 打赏
  • 举报
回复
怎样用C++BUILDR编制纯API的?




回复人: shak(人生苦短) ( ) 信誉:100 2003-1-22 8:30:32 得分:0



在上世纪的最后一个晚上,O发觉了编制纯API的C程序
步骤,VCL构架使用简单但代码庞大,一个仅有一个Form1的VCL
程序编译后将产生300K的肥胖目标,如果不用VCL库,仅利用MS
API编制的C++程序所产生的目标将只有8K, 嘿嘿! 瘦得已皮包
骨头,不过,比只有一层皮的 CIH 还胖7倍;

产生无VCL的纯API C++BUILDER 程序步骤:

1.进入C++BUILDER 5.0,关闭缺省工程: File -> Close All;
2.选 File -> New ... -> Console Wizard 进入控制台向导;
3.弹出参数框中,Source Type 选C++,
Use VCL, Multi Threaded, Console Application 三行都
不要选中;
选中Specify project source,且填上工程名: TestAPI
4.点OK后,选中Create a new Unit,将Unit1.cpp内容全清除,
将下列框架粘贴上;
5.存盘,工程名存成TestApi.bpr,运行,产生8kb的目标
TestApi.exe

//---------------------------------------------------------------------------

#ifndef MyFirsSDKAppCppH
#define MyFirsSDKAppCppH
//---------------------------------------------------------------------------
#endif


//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "MyFirsSDKAppCpp.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM) ; //窗口消息循环函数向前声明
//---------------------------------------------------------------------------

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow)
{ //初始化窗口类
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
char classname[]="窗口"; //窗口类名
char Title[]="My_SDK_TEST_Window"; //窗口标题名
//窗口类的定义
wndclass.lpfnWndProc=WndProc; //窗口处理函数为WndProc
wndclass.cbClsExtra=0; //窗口类无扩展
wndclass.cbWndExtra=0; //窗口实例无扩展
wndclass.hInstance=hInstance,
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色
wndclass.lpszMenuName=NULL; //窗口中无菜单
wndclass.lpszClassName=classname;
wndclass.style=0; //窗口类型为缺省类型

if(!RegisterClass(&wndclass)) //窗口类注册
{
MessageBeep(0); //如果注册失败则发出警告声音
return false;
}
//-------------------------------------------------------------------------------------
hwnd=CreateWindow(
classname, //窗口类名
Title, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
10, //窗口左上角坐标为缺省值
19,
250,
480, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL //不使用该值
);

ShowWindow(hwnd,nCmdShow); //显示窗口
UpdateWindow(hwnd); //绘制用户区
while( GetMessage(&msg,NULL,0,0)) //消息循环
{
TranslateMessage(&msg); //键盘消息转换
DispatchMessage (&msg); //分发消息
}
return msg.wParam; //消息循环结束即程序终止时将信息返回系统
}

//------------------------------------------------------------------------------------

LRESULT CALLBACK WndProc(HWND hwnd,UINT message ,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY: PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息
default: return DefWindowProc(hwnd,message,wParam,lParam); //默认时采用系统消息默认处理函数
}
return(0);
}

tcpcxg 2003-11-07
  • 打赏
  • 举报
回复
netsys2(来电) 大虾,小弟还想让你介绍几本关于cb网络编程的好书和一些网上资源。小弟再次感谢!!
tcpcxg 2003-11-07
  • 打赏
  • 举报
回复
netsys2(来电) 大虾,小弟刚才把机子重启后,进行测试,发现正常。但是,小弟想问一下cb下如何做一个不要界面,一点击就可以执行的下载程序。谢谢!!
netsys2 2003-11-07
  • 打赏
  • 举报
回复
我也测试过了,无论是内网、本机、外网的FTP都没有任何问题,好用得很!

例如我才测试的:

211.90.188.34

user:list
pass:list
tcpcxg 2003-11-07
  • 打赏
  • 举报
回复
我的远程主机FTP服务用Windows下的FTP可以正常下载,用FTP命令也可以正常下载,端口就是21。netsys2(来电) 大虾,这些我都检查过了。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧