Hi
I've been struggling to connect to a FTP server for some time now, and I really need some help. Here's my code (cut down to just the basics)
Code:
#include <stdio.h>
#include<winsock2.h>
int main(int argc, char* argv[])
{
WORD VersionNumber;
WSADATA WinSockData;
VersionNumber = MAKEWORD(2, 0);
WSAStartup(VersionNumber, &WinSockData);
sockaddr_in Server_addr;
memset(&Server_addr, 0, sizeof(sockaddr_in));
Server_addr.sin_family = AF_INET;
Server_addr.sin_addr.s_addr = inet_addr("192.168.207.1");
Server_addr.sin_port = htons(21);
SOCKET ServerSocket = socket(AF_INET, SOCK_STREAM, 0);
if(ServerSocket == INVALID_SOCKET)
{
printf("error creating socket\n");
return 0;
}
if(connect(ServerSocket, (struct sockaddr*)&Server_addr, sizeof(sockaddr)) == SOCKET_ERROR)
{
printf("error connecting socket\n");
return 0;
}
const int BUF_SIZE = 1024;
char recvBuffer[BUF_SIZE];
memset(&recvBuffer, 0, BUF_SIZE);
if(send(ServerSocket, " ", 1, 0) == SOCKET_ERROR)
printf("send(1) error\n");
else
printf("send(1) success\n");
if(recv(ServerSocket, recvBuffer, BUF_SIZE, 0) == SOCKET_ERROR)
printf("recv(1) error\n");
else
printf("recv(1) success\n");
printf("> %s\n", recvBuffer);
memset(&recvBuffer, 0, BUF_SIZE);
if(send(ServerSocket, " ", 1, 0) == SOCKET_ERROR)
printf("send(2) error\n");
else
printf("send(2) success\n");
if(recv(ServerSocket, recvBuffer, BUF_SIZE, 0) == SOCKET_ERROR)
printf("recv(2) error\n");
else
printf("recv(2) success\n");
printf("> %s\n", recvBuffer);
memset(&recvBuffer, 0, BUF_SIZE);
if(send(ServerSocket, "user n124581", 12, 0) == SOCKET_ERROR)
printf("send(3) error\n");
else
printf("send(3) success\n");
if(recv(ServerSocket, recvBuffer, BUF_SIZE, 0) == SOCKET_ERROR)
printf("recv(3) error\n");
else
printf("recv(3) success\n");
printf(">>> %s\n", recvBuffer);
return 0;
}
when i execute this I get the following output:
Code:
send(1) success
recv(1) success
> 220-FTPD1 IBM FTP CS V1R4 at MVSETE.IT.NEDNET.CO.ZA, 16:49:16 on 2005-03-03.
send(2) success
recv(2) success
> 220 Connection will close if idle for more than 5 minutes.
send(3) success
_
I think i'm supposed to get a return code 331(send password) from the server at this stage, but it just sits there waiting for who knows what. Could this be the server giving me a hard time, because my code looks fine to me?
Any help would be greatly appreciated.