•개발인원 : 2인
•개발기간 : 2018.03.02 - 2018.06.22
•개발도구 : 리눅스 서버. C 프로그래밍 (gcc 컴파일러)
•맡은분야 : 서버와 클라이언트 프로그램 작성
열혈 TCP/IP 소켓 프로그래밍에 나온 예제들을 수업 과제로 작성했던 것이다.
1. echo_server2 코드 중에서..
5개의 클라이언트 접속으로부터
연결된 클라이언트의 IP 와 포트번호를 출력하는 코드 부분이다.
2. 서버 파일저장(client로 부터 받은 문자열) 코드 중에서..
클라이언트가 연결되면 자식프로세스를 할당하고, 파일 이름과 내용을 받아 저장하는 부분이다.
3. 파이프를 이용한 서버 파일저장(client로 부터 받은 문자열) 코드중에서..
2개의 자식 프로세스가 2개의 파이프(fds1, fds2)로 문자열 데이터를 교환하는 모습이다
프로세스2가 클라이언트의 메세지를 fds2으로 보내면, 프로세스1이 받아 파일로 저장하고,
프로세스 1이 받은 문자열 그대로 fds1으로 에코잉하면, 프로세스2가 받아서 클라이언트에 echo한다.
4. 세마포어를 이용해서 프로세스 제어하기 예제에서..
무분별한 전역변수 num의 사용을 막기 위해 두개의 세마포어 변수 sem_one, sem_two 를 이용하여
스레드의 동작을 제어하는 모습이다.
운영체제에서 교착상태에 빠지지않기 위해 사용한다는 세마포어와 뮤텍스를 실제로 사용해보는 기회가 되었고,
스레드와 자식 프로세스의 사용, 좀비프로세스의 경험, 네트워크와 클라이언트의 데이터 교환 코딩을 많이 해볼 수 있는 기회였다.
'대학 > 3학년' 카테고리의 다른 글
운영체제 팀 프로젝트(우분투 시스템콜) (0) | 2020.05.11 |
---|---|
모바일멀티미디어프로그래밍 팀프로젝트 (0) | 2020.05.09 |
소프트웨어공학 팀프로젝트 (0) | 2020.05.09 |
임베디드 시스템 팀프로젝트(교차개발환경) (0) | 2020.05.08 |
컴퓨터 네트워크 팀프로젝트(패킷분석) (0) | 2020.05.08 |