Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
- {
- int nRetCode = 0;
- // initialize MFC and print and error on failure
- if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
- {
- // TODO: change error code to suit your needs
- _tprintf(_T("Fatal Error: MFC initialization failed\n"));
- nRetCode = 1;
- }
- else
- {
- // TODO: code your application's behavior here.
- // Khoi tao Thu vien
- if (AfxSocketInit() == FALSE)
- {
- cout << "Khong the khoi tao Socket Libraray";
- return FALSE;
- }
- // Tao socket dau tien
- CSocket ClientSocket;
- ClientSocket.Create();
- string strIpAdr = "127.0.0.1";
- CString cstrIpAdr(strIpAdr.c_str());
- // Ket noi den Server
- if (ClientSocket.Connect(cstrIpAdr, 21) != 0)
- {
- cout << "connected to " + strIpAdr + "." << endl;
- char buffer[4096]; // Chuỗi để lưu dữ nhận từ sever, hoặc client.
- string code = "";
- string strUser = "doanmmt";
- string strPass = "123";
- string strRequest = "";
- int flag = 0;
- do
- {
- // Nhan thong diep tu Server
- memset(buffer, 0, 4096);
- ClientSocket.Receive(buffer, 4096);
- int i = 0;
- code = "";
- for (i = 0; i < 3; i++)
- {
- code += buffer[i];
- }
- // Nếu là mã yêu cầu là nhập User.
- if (code == "220")
- {
- char user[4096];
- cout << buffer;
- cout << "User (" + strIpAdr + ":(none)): ";
- memset(user, 0, 4096);
- fgets(user, 4096, stdin);
- memset(buffer, 0, 4096);
- buffer[0] = 'u';
- buffer[1] = 's';
- buffer[2] = 'e';
- buffer[3] = 'r';
- buffer[4] = ' ';
- int i = 0;
- for (i = 0; i < strlen(user); i++)
- {
- buffer[5 + i] = user[i];
- }
- ClientSocket.Send(buffer, strlen(buffer) + 1, 0);
- }
- else if (code == "331")
- {
- char pass[4096];
- cout << buffer;
- cout << "Password: ";
- memset(pass, 0, 4096);
- fgets(pass, 4096, stdin);
- memset(buffer, 0, 4096);
- buffer[0] = 'p';
- buffer[1] = 'a';
- buffer[2] = 's';
- buffer[3] = 's';
- buffer[4] = ' ';
- int i = 0;
- for (i = 0; i < strlen(pass); i++)
- {
- buffer[5 + i] = pass[i];
- }
- ClientSocket.Send(buffer, strlen(buffer) + 1, 0);
- }
- else if (code == "230")
- {
- cout << buffer;
- flag = 1;
- }
- else if (code == "200")
- {
- cout << buffer;
- if (strRequest == "dir")
- {
- memset(buffer, 0, 4096);
- fgets(buffer, 4096, stdin);
- ClientSocket.Send(buffer, strlen(buffer) + 1, 0);
- }
- }
- else if (code == "150")
- {
- cout << buffer;
- }
- if (flag == 1)
- {
- cout << "ftp> ";
- cin >> strRequest;;
- cin.ignore();
- if (strRequest == "dir")
- {
- CSocket ClientSocket1;
- ClientSocket1.Create();
- UINT clientPort = 0;
- if (!ClientSocket1.Connect(cstrIpAdr, 21))
- {
- cout << "Khong the tao data channel\n";
- return -1;
- }
- else
- {
- cout << "Tao socket thu 2 thanh cong\n";
- if (!ClientSocket1.GetPeerName(cstrIpAdr, clientPort))
- {
- cout << "Khong the xac dinh port\n";
- return -1;
- }
- char buffer[4096];
- memset(buffer, 0, 4096);
- sprintf(buffer, "PORT %d,%d,%d,%d,%d,%d\n", 127, 0, 0, 1, clientPort / 256, clientPort % 256);
- ClientSocket.Send(buffer, strlen(buffer));
- cout << "Gui port thanh cong\n";
- }
- /*if (ClientSocket1.Connect(cstrIpAdr, 20) != 0)
- {
- char port[4096];
- memset(port, 0, 4096);
- fgets(port, 4096, stdin);
- ClientSocket.Send(port, strlen(port) + 1, 0);
- }
- else
- {
- cout << "Khong the ket noi den Server !!!" << endl;
- }*/
- }
- }
- } while (1);
- }
- else
- {
- cout << "Khong the ket noi den Server !!!" << endl;
- }
- // Dong ket noi
- ClientSocket.Close();
- }
- return nRetCode;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement