윈도우 기반 서버 소켓 기본 코드 입니다.
#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32")
#define PORT 8088
#define MAXSIZE 256
#define PACKET_SIZE 1024
int main(int argc, char *argv[])
{
WSADATA wsaData;
SOCKET hListen;
int nRecv = 0;
char buf[MAXSIZE] = { 0, };
WSAStartup(MAKEWORD(2, 2), &wsaData);
hListen = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (hListen == -1) ErrorMsg("Socket Error!");
SOCKADDR_IN listnAddr = { 0, };
listnAddr.sin_family = AF_INET;
listnAddr.sin_port = htons(PORT);
listnAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if (bind(hListen, (SOCKADDR *)&listnAddr, sizeof(listnAddr)) == -1)
printf("Bind() Error!");
if (listen(hListen, SOMAXCONN) == -1)
printf("Listen() Error!");
SOCKADDR_IN ClntAddr = { 0, };
printf("Server Working....\n");
int iClntSize = sizeof(ClntAddr);
int i = 1;
while (1)
{
SOCKET hClient = accept(hListen, (SOCKADDR *)&ClntAddr, &iClntSize);
if (hClient == -1)
printf("Accept() Error!");
//
nRecv = recv(hClient, buf, PACKET_SIZE, 0);
if (nRecv == -1)
printf("Recv() Error!");
//
printf("Rev msg : %s \n", buf);
}
closesocket(hListen);
WSACleanup();
return 0;
}
'Windows Programming > Windows Socket' 카테고리의 다른 글
C언어 Echo Client (1:1통신) (0) | 2022.07.14 |
---|---|
C언어 Echo Server (1:1 통신) (0) | 2022.07.14 |
Windows Socket (Client) (0) | 2022.01.11 |