#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>
#include <conio.h>
#include "struct_header.h"
#pragma comment(lib,"wsock32.lib")
void ErrorHandling(char *message);
void SocketOpen();
void main(void)
{
int ch=NULL;
while(1)
{
printf("\n[1]전송,[2],종료\n");
ch=getch();
switch(ch)
{
case'1':
SocketOpen();
break;
case'2':
return;
default:
puts("[1]전송,[2],종료");
break;
}
}
return;
}
void ErrorHandling(char *message)
{
fputs(message,stderr);
fputc('\n',stderr);
exit(1);
}
void SocketOpen()
{
WSADATA wsaData;
SOCKET hSocket;
int strLen;
int i;
SOCKADDR_IN servAddr;
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0)
ErrorHandling("WSAStratup() error!");
hSocket=socket(PF_INET,SOCK_STREAM,0);
if(hSocket==INVALID_SOCKET)
ErrorHandling("socket() error");
memset(&servAddr,0,sizeof(servAddr));
servAddr.sin_family=AF_INET;
servAddr.sin_addr.s_addr=inet_addr("192.168.0.34");
servAddr.sin_port=htons(2000);
if(connect(hSocket,(SOCKADDR *)&servAddr,sizeof(servAddr))==SOCKET_ERROR)
ErrorHandling("connect() error");
MsgBuff msg;
char sendData[MSG_SiZE + MSG_HEADER];
int count=1;
memset(&msg, 0x00, sizeof(msg));
memset(&sendData, 0x00, sizeof(sendData));
msg.data_sz = sizeof(msg);
msg.msgID = count;
memcpy(&msg.data[0], "1", 1);
memcpy(&msg.data[1], "123", 3);
while(1)
{
msg.msgID = count;
memcpy(&sendData, &msg, sizeof(msg));
Sleep(1);
send(hSocket, sendData, MSG_SiZE+MSG_HEADER, 0);
printf("%d\n", msg.msgID);
count++;
}
closesocket(hSocket);
WSACleanup();
return;
}
무한으로 전송 UDP로 제작하는게 더 낳을지 모른다...
'객체지향언어 > C++' 카테고리의 다른 글
고급 함수편 - 전치연산자(Prefix Operator)를 중첩(Overloading) 시키기 (0) | 2009.08.24 |
---|---|
C++ 포인터 (0) | 2009.08.24 |
C++과 상관이 있을지 모르겠지만... 에러리스트 목록 입니다. 참고하세요. (0) | 2009.08.05 |