--- /dev/null
+#include "roast/net/socket.hpp"
+#include <stdio.h>
+#include <winsock2.h>
+
+#define BUF 256
+
+void main( void )
+{
+ //WASDATA\8d\\91¢\91Ì WSAStartup\82Ì\8c\8b\89Ê\82ð\8ai\94[
+ WSADATA wsaData;
+ //WinSock\82Ì\83o\81[\83W\83\87\83\93
+ WORD winSockVer = MAKEWORD(2 , 2);
+ //\82¢\82í\82¸\82Æ\82µ\82ê\82½\83\\83P\83b\83g
+ SOCKET sock , clientSock;
+
+ struct sockaddr_in addr;
+ struct sockaddr_in client;
+ int len;
+
+ //\83\81\83b\83Z\81[\83W\8fW
+ char* welcome = "\82æ\82¤\82±\82»\82¨\82¢\82Å\82\82¾\82³\82¢\82Ü\82µ\82½!";
+
+ //\8eó\90M\83\81\83b\83Z\81[\83W\97p\83o\83b\83t\83@
+ char* recBuf = (char*)calloc( BUF , sizeof(char) );
+ int recErrMsg = 1;
+
+ //\83\\83P\83b\83g\82ð\8f\89\8aú\89»\82·\82é
+ if (0 != WSAStartup(winSockVer , &wsaData)){
+ printf("WSAStartup\8e¸\94s");
+ exit(1);
+ }
+
+ //\83\\83P\83b\83g\82Ì\8dì\90¬\82É\8e¸\94s\82·\82é\82Æ -1 \82ð\95Ô\82·
+ if (-1 == (sock = socket(AF_INET, SOCK_STREAM, 0))){
+ printf("\83\\83P\83b\83g\82Ì\8f\89\8aú\89»\82É\8e¸\94s");
+ exit(1);
+ }
+
+ //\83\\83P\83b\83g\82Ì\90Ý\92è
+ addr.sin_family = AF_INET;
+ addr.sin_port = htons(8000);
+ addr.sin_addr.S_un.S_addr = INADDR_ANY;
+
+ //\83\\83P\83b\83g\82ð\83o\83C\83\93\83h\81i\83|\81[\83g\82âIP\83A\83h\83\8c\83X\82ð\8a\84\82è\93\96\82Ä\82é\81j
+ bind(sock , (struct sockaddr *)&addr , sizeof(addr));
+
+ //\91Ò\82¿\8eó\82¯
+ if (-1 == listen(sock , SOMAXCONN)){
+ printf("listen\82É\8e¸\94s");
+ exit(1);
+ }else
+ printf("\91Ò\82¿\8eó\82¯\8aJ\8en\n");
+
+ //\83N\83\89\83C\83A\83\93\83g\82©\82ç\90Ú\91±
+ len = sizeof(client);
+ clientSock = accept(sock , (struct sockaddr *)&client , &len);
+ printf("%s(\83|\81[\83g:%u)\82©\82ç\90Ú\91±\n" ,
+ inet_ntoa(client.sin_addr) , ntohs(client.sin_port));
+
+ //\83f\81[\83^\91\97\90M
+ if (-1 == send(clientSock , welcome , strlen(welcome) , 0)){
+ printf("\83f\81[\83^\91\97\90M\82É\8e¸\94s");
+ exit(1);
+ }
+ while(recErrMsg > 0){
+ recErrMsg = recv(clientSock , recBuf , BUF ,0);
+ printf("%s ",recBuf);
+ }
+ if (recErrMsg == 0)
+ printf("\83N\83\89\83C\83A\83\93\83g\82ª\90Ø\92f\82µ\82½\82æ\82¤\82Å\82·\n");
+ else if (recErrMsg == -1)
+ printf("\8eó\90M\82É\8e¸\94s\n");
+
+ //\83\\83P\83b\83g\82Ì\83N\83\8a\81[\83i\83b\83v
+ WSACleanup();
+}
+