정말 예제 간단한 클라이언트 프로그램 짜봤는데요
서버에 어떤 명령어를 정해놓고 제가 만약 1이란문자를 서버에 전송시키면
100이란 단어를, 2란 문자를 보내면 200이란 문자를 서버에서 보내줘야되는데요...
문제는
1 보내면 아무것도 안오고
2 를 보내면 100이오고...
아무 지정도 안해놓은 3을 보내면 에러가 떠야되는데
200이오고
한 템포씩 늦게 도착하네요...
이거 이유가 리시브쪽일까요... 센드쪽일까요...
소켓쪽은 전혀 이상이없구요
-
WSADATA wsaData;
-
SOCKET hSocket;
-
char message[BUF_SIZE];
-
int strLen;
-
SOCKADDR_IN servAdr;
-
-
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
-
ErrorHandling("WSAStartup() error!");
-
-
hSocket = socket(PF_INET, SOCK_STREAM, 0);
-
if (hSocket == INVALID_SOCKET)
-
ErrorHandling("socket() error");
-
-
memset(&servAdr, 0, sizeof(servAdr));
-
servAdr.sin_family = AF_INET;
-
servAdr.sin_addr.s_addr = inet_addr(IP);
-
servAdr.sin_port = htons(PORT);
-
-
if (connect(hSocket, (SOCKADDR*)&servAdr, sizeof(servAdr)) == SOCKET_ERROR)
-
ErrorHandling("connect() error!");
-
else
-
{
-
puts("Connected...........");
여기가 이제 센드하고 리시브쪽인데...
-
while (1)
-
{
-
-
-
memset(message, 0x0, BUF_SIZE);
-
fputs("Input message(Q to quit): ", stdout);
-
fgets(message, BUF_SIZE, stdin);
-
-
if (!strcmp(message, "q\n") || !strcmp(message, "Q\n"))
-
break;
-
-
send(hSocket, message, strlen(message), 0);
-
-
strLen = recv(hSocket, message, BUF_SIZE - 1, 0);
-
strLen = recv(hSocket, message, sizeof(message) - 1, 0);
-
message[strLen] = 0;
-
-
printf("Message from server: \n%s\n\n", message);
-
-
-
}
서버쪽도 전혀 이상이 없습니다 ㅠ
근데
더웃긴건...
디버깅 모드해서 하나하나 뜯어보려고 디버깅 모드로 한줄한줄 코딩하면
원하는 데이터가 잘나오네요.....-_-
지나가는 얘기로
전송속도가 너무 빨라서 늦게 오는거다... 라는걸 들어본적이있어서..
슬립걸어도 안오네요...-_-;;
미쳐버리겠네요...ㅋㅋㅋ
디버깅해서 한줄한줄 실행시키면 원하는데이터가 나오고
걍 빌드해서 실행시키면... 한템포씩 늦네요 ㅠ