//////////////////Ŭ¶óÀ̾ðÆ® void __cdecl RecvThread(void * p) { SOCKET sock = (SOCKET)p; char buf[256]; while (1) { int recvsize = recv(sock, buf, sizeof(buf), 0); if (recvsize == 0) { printf("Á¢¼ÓÁ¾·á\n"); break; } buf[recvsize] = '\0'; printf("\rserver ÀÔ·Â>> %s\n>> ", buf); } } int _tmain(int argc, _TCHAR* argv[]) { WSADATA wsaData; int retval = WSAStartup(MAKEWORD(2, 2), &wsaData); if (retval != 0) { printf("WSAStartup() Error\n"); return 0; } SOCKET serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKADDR_IN serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(4000); serv_addr.sin_addr.s_addr = inet_addr("61.81.99.77"); retval = connect(serv_sock, (SOCKADDR*)&serv_addr, sizeof(SOCKADDR)); if (retval == SOCKET_ERROR) { printf("connect() Error\n"); return 0; } _beginthread(RecvThread, NULL, (void*)serv_sock); while (1) { char buf[255] = { 0 }; printf("¼­¹ö¿¡ ¿¬°áµÇ¾ú½À´Ï´Ù"); printf("ÀÔ·Â>> "); gets(buf); int sendsize = send(serv_sock, buf, strlen(buf), 0); if (sendsize == 0) break; } closesocket(serv_sock); WSACleanup(); } //////////////////////////////////¼­¹ö void __cdecl RecvThread(void * p) { SOCKET sock = (SOCKET)p; char buf[256]; while (1) { int recvsize = recv(sock, buf, sizeof(buf), 0); if (recvsize == 0) { printf("Á¢¼ÓÁ¾·á\n"); break; } buf[recvsize] = '\0'; printf("\rÁ¢¼ÓÀÚ >> %s\n>> ", buf); } } int _tmain(int argc, TCHAR* argv[]) { WSADATA wsaData; int retval = WSAStartup(MAKEWORD(2, 2), &wsaData); if (retval != 0) { printf("WSAStartup() Error\n"); return 0; } SOCKET serv_sock; serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (serv_sock == SOCKET_ERROR) { printf("socket() Error\n"); return 0; } SOCKADDR_IN serv_addr = { 0 }; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(4000); serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); retval = bind(serv_sock, (SOCKADDR*)&serv_addr, sizeof(SOCKADDR)); if (retval == SOCKET_ERROR) { printf("bind() Error\n"); return 0; } listen(serv_sock, 5); SOCKADDR_IN clnt_addr = { 0 }; int size = sizeof(SOCKADDR_IN); SOCKET clnt_sock = accept(serv_sock, (SOCKADDR*)&clnt_addr, &size); if (clnt_sock == SOCKET_ERROR) { printf("accept() Error\n"); return 0; } printf("Ŭ¶óÀ̾ðÆ® Á¢¼Ó\n"); printf("IP : %s, Port : %d\n", inet_ntoa(clnt_addr.sin_addr), clnt_addr.sin_port); _beginthread(RecvThread, NULL, (void*)clnt_sock); while (1) { char buf[255] = { 0 }; printf(">> "); gets(buf); int sendsize = send(clnt_sock, buf, strlen(buf), 0); if (sendsize == 0) break; } closesocket(clnt_sock); closesocket(serv_sock); WSACleanup(); } ÀÌ·¯ÇÑ ±¸Á¶Ã¼¸¦ ³Ñ±â°í ½Í½À´Ï´Ù. struct student{ char name[20]; int a,b; };