ProjectVirush/Ruleμ λ§μ‘±νλ κ²μ²λΌ 보μ΄λ νλ‘ν νμ
μ λ§λ λ€.
μ§μ λ¨μλ‘ μ΄λ¦, μμ£Ό κ°μ²΄μ, κΈ°λ³Έ ν체 보μ λ, νΉμ λ°μ΄λ¬μ€ κ°μ²΄μμ κ·Έμ ν΄λΉνλ μ΅λ ν체 보μ λμ κ°μ§λ€.
μ§μ κ° λλ€ν μ«μμ μμ£Ό μ΄λμ΄ μΌμ΄λλ€.
λ°μ΄λ¬μ€λ μ¦μ μλ, μ 볡기, λ
μ±μ κ°μ§λ€. μ΄λ μκ°μ κ΄ν ν¨μ(f(t))μ΄λ€.
Client Framework ¶
~cpp //Project -> Setting -> LINK λ©λ΄ -> Object/library modules: μ λλΆλΆμ ws2_32.lib λ₯Ό μΆκ°νλ€. #include <stdio.h> #include <winsock2.h> #define PORT 9999 // μλ²μ 9999λ² ν¬νΈλ₯Ό μ°λ€ #define BACKLOG 5 #define SERVER_IP "127.0.0.1" void error(char *buf) { puts(buf), exit(1); } main(){ WSADATA wsaData; SOCKET server_sock; // μλ²μ socketμ μμ± SOCKADDR_IN server_addr; // λ€νΈμν¬μ μ 보λ₯Ό λ΄μ structure μμ±. char msg[] = "My name is Na Hwidong,."; char question[200]; int queslen; if( WSAStartup(MAKEWORD(2,2), &wsaData) == -1 ) error("WSAStartup Error"); // socket μ€μ // νλ‘κ·Έλλ¨Έλ μ΄κ²μ ν΅ν΄ λ€νΈμν¬μ λνλ₯Ό νλ€. server_sock = socket(AF_INET, SOCK_STREAM, 0); if( server_sock == -1 ) error("server socket error"); // λ€νΈμ μ 보 μ€μ // μ΄κ²μ νλ‘κ·Έλ¨μ΄ socketκ³Ό μ°κ²°ν μ 보λ₯Ό λ΄κ³ μλ€. memset((SOCKADDR_IN *)&server_addr, 0, sizeof(SOCKADDR_IN)); // struct sockaddr_in -> SOCKADDR_IN server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(SERVER_IP); // λ‘컬 μ£Όμλ‘ μ€μ νλ€. server_addr.sin_port = htons(PORT); // μλ²μ μ°κ²°νλ€. μλλ ν΄λ³΄μ. if( connect(server_sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1 ) fprintf(stderr, "μλ²μ connect ν μ μμ΅λλ€."), exit(1); for( int i = 0 ; i < 3 ; i++ ){ // μ°κ²°νκ³ λ ν΄μΌμ§ κ·Έλ₯ μμλ€..;; queslen = recv( server_sock, question, sizeof(question), 0); question[queslen] = '\0'; printf( "I have to answer the next question. %s\n", question); if( send(server_sock, msg, sizeof(msg), 0) == -1 ) fprintf(stderr, "send error"); printf( "I sent an answer. The answer is %s\r\n", msg); system("pause"); } WSACleanup(); exit(0); // exitλ‘ μ’ λ£λ₯Ό νλ©΄ λͺ¨λ νμΌ λμ€ν¬λ¦½ν°λ₯Ό μλμΌλ‘ λ«κ³ μ’ λ£νλ€. }