youbo1 发表于 2015-5-29 08:46:51

FTP客户端代码实现demo_v1.0

  写的不是特别好,算是初次尝试,还是懂的了不少。
  写一个Ftp客户端第一件事情应该是初始化winsock。



//////////////////////////////////////////////////////////////////
//author:YSI
//date:2012-04-21
//version:1.0
#include "main.h"
#include "initsock.h"
using namespace std;
CInitSock initSock;//初始化Winsock库
  
  CInitSock类主要是初始化Winsock类的,完成加载Winsock(WSAStartup),确定使用的sock版本等内容。



//////////////////////////////////////////////////////////
// initsock.h文件

#include
#pragma comment(lib, "WS2_32")    // 链接到WS2_32.lib
class CInitSock      
{
public:
CInitSock(BYTE minorVer = 2, BYTE majorVer = 2)
{
// 初始化WS2_32.dll
WSADATA wsaData;//WSA结构体里有DLL库的详细信息
WORD sockVersion = MAKEWORD(minorVer, majorVer);//将BYTE型的min和maj合并成一个WORD型
if(::WSAStartup(sockVersion, &wsaData) != 0)//加载Winsock库
      {
exit(0);
}
}
~CInitSock()
{   
::WSACleanup();   
}
};
  
  Socket套接字就像是一个窗口一样,而输送的信息就好似传信的鸽子一般,只会飞回到他自己的那个窗口中的巢穴里。
  窗口(Socket套接字)在刚开始的使用时需要初始化的。



      SOCKET control_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_HOPOPTS); //初始化一个套接字,套接字就好像一个窗口一样
if (control_sock == INVALID_SOCKET)
{
cout
页: [1]
查看完整版本: FTP客户端代码实现demo_v1.0