DEVELOPMENT/C/C++
[C/C++] UDP ECHO SERVER 예제
RAYZIE
2015. 2. 13. 16:08
- #include <stdio.h>
- #include <string.h>
- #include <winsock2.h>
- #define BUF_SIZE 100
- #define PORT 3000
- #pragma comment(lib, "ws2_32.lib")
- void ErrorHandling(char* message);
- int main(int argc, char *argv[])
- {
- WSADATA wsaData;
- SOCKET servSock;
- char message[BUF_SIZE];
- int strLen;
- int clntAdrSz;
- SOCKADDR_IN servAdr, clntAdr;
- if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
- ErrorHandling("WSAStartup() error");
- servSock = socket(PF_INET, SOCK_STREAM, 0);
- if (servSock == INVALID_SOCKET)
- ErrorHandling("UDP socket creation error");
- servAdr.sin_family = AF_INET;
- servAdr.sin_addr.s_addr = htonl(INADDR_ANY);
- servAdr.sin_port = htons(PORT);
- if (bind(servSock, (SOCKADDR*)&servAdr, sizeof(servAdr)) == SOCKET_ERROR)
- ErrorHandling("bind() error");
- while (1)
- {
- clntAdrSz = sizeof(clntAdr);
- strLen = recvfrom(servSock, message, BUF_SIZE, 0, (SOCKADDR*)&clntAdr, &clntAdrSz);
- sendto(servSock, message, strLen, 0, (SOCKADDR*)&clntAdr, sizeof(clntAdr));
- }
- closesocket(servSock);
- WSACleanup();
- return 0;
- }
- void ErrorHandling(char *msg)
- {
- }