C 코드 질문좀요...
슬아
질문 제목 : 소켓으로 짠 코드입니다.
서버 접속한뒤 아이디를 치고 난 이후에
아이디 길이가 남아서 암호까지 치고 난 후엔 아이디로 쳤던게 자꾸 따라오네요..
#include stdio.h
#include winsock2.h
#pragma comment(lib, ws2_32.lib)
int main(int argc, char **argv)
{
int retval;
// 윈속 초기화
wsadata wsa;
if(wsastartup(makeword(2,2), &wsa) != 0)
return -1;
// socket 생성
socket sock = socket(af_inet, sock_stream, 0);
if(sock == invalid_socket)
{
printf(socket() failed\n);
exit(-1);
}
sockaddr_in serveraddr;
zeromemory(&serveraddr, sizeof(serveraddr));
serveraddr.sin_family = af_inet;
serveraddr.sin_port = htons(21);
serveraddr.sin_addr.s_addr = inet_addr(192.168.56.1);
connect(sock, (sockaddr *)&serveraddr, sizeof(serveraddr));
char send_buf[100] = {0};
char recv_buf[100] = {0};
char input[30]={0};
retval = recv(sock, recv_buf, sizeof(recv_buf), 0);
printf(%s\n, recv_buf);
while(1){
gets(input);
sprintf(send_buf, %s\n,input);
send(sock, send_buf, strlen(send_buf), 0);
retval = recv(sock, recv_buf, sizeof(recv_buf), 0);
printf(%s\n, recv_buf);gets(input);
sprintf(send_buf, %s\n,input);
send(sock, send_buf, strlen(send_buf), 0);
retval = recv(sock, recv_buf, sizeof(recv_buf), 0);
printf(%s\n, recv_buf);
}
// 윈속 종료
wsacleanup();
return 0;
}
-
Creative
아 memset을 잊고 있었네요...감사합니다
-
두바다찬솔
버퍼를 memset 같은거로 초기화 시키면 되지않을까요?