에혀..
이번엔 쓰레드를 사용해보자..


01.#include "server.h"
02.#include "comm.h"
03. 
04.pthread_mutex_t  mutex = PTHREAD_MUTEX_INITIALIZER; // 쓰레드 초기화
05. 
06.void openServ(){
07.    //TODO 내용 추가
08. 
09.}
10. 
11.void closeServ(){
12.    //TODO 내용 추가
13. 
14.}
15. 
16.void *rcvProcess() {
17.    while (1) {
18.        pthread_mutex_lock(&mutex); // 잠금
19.        //TODO 내용 추가
20. 
21. 
22.        sleep(1);
23.        pthread_mutex_unlock(&mutex); // 해제
24.    }
25.}
26. 
27.void *sndProcess() {
28.    while (1) {
29.        pthread_mutex_lock(&mutex); // 잠금
30.        //TODO 내용 추가
31. 
32. 
33.        sleep(1);
34.        pthread_mutex_unlock(&mutex); // 해제
35.    }
36.}
37. 
38.int main(int argc, char **argv) {
39. 
40.    int thr_id;
41.    int status;
42.    int a = 1;
43.    int b = 2;
44.    pthread_t p_thread[2];
45. 
46.    openServ();
47. 
48.    thr_id = pthread_create(&p_thread[0], NULL, rcvProcess, (void *) &a);
49.    if (thr_id < 0) {
50.        perror("thread create error : ");
51.        exit(0);
52.    }
53. 
54.    sleep(1);
55.    thr_id = pthread_create(&p_thread[1], NULL, sndProcess, (void *) &b);
56.    if (thr_id < 0) {
57.        perror("thread create error : ");
58.        exit(0);
59.    }
60. 
61.    // 쓰레드 종료를 기다린다.
62.    pthread_join(p_thread[0], (void **) &status);
63.    pthread_join(p_thread[1], (void **) &status);
64. 
65.    status = pthread_mutex_destroy(&mutex);
66. 
67.    printf("status code  =  %d", status);
68.    printf("********************* Server is end *********************");
69. 
70.    closeServ();
71. 
72.    return 0;
73.}

그냥 쓰려구 만든 기본형이다.
//TODO 내용 추가

라고 되어 있는 부분에 작업을 추가 하려구 만들었다.
완전 기본이라 암것도 없지만 이것을 기본으로 서버 하나 만들어본다...ㅠㅠ

To be continued.    -夜昧-
반응형