에혀..
이번엔 쓰레드를 사용해보자..
그냥 쓰려구 만든 기본형이다.
라고 되어 있는 부분에 작업을 추가 하려구 만들었다.
완전 기본이라 암것도 없지만 이것을 기본으로 서버 하나 만들어본다...ㅠㅠ
이번엔 쓰레드를 사용해보자..
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 내용 추가
라고 되어 있는 부분에 작업을 추가 하려구 만들었다.
완전 기본이라 암것도 없지만 이것을 기본으로 서버 하나 만들어본다...ㅠㅠ