Operating System Multiple Access Chatting Program using Multithread

Slides:



Advertisements
Similar presentations
Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
Advertisements

Classroom English How do you say _________ in Korean? _________ 는 한국어로 뭐예요 ?
영어쓰기 2 Lesson 11. 영어영문학 전공 4 학년 손정호 프랑스어문학과 4 학년 손지혜 영어영문학 전공 3 학년 박홍인 영어영문학 전공 2 학년 최광준 1.
C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
SSL (Secure Socket Layer) 중부대학교 정보보호학과 이병천 교수. 웹 보안 구현방법  네트워크 계층에서의 구현방법  특징  IP 계층에 보안 기능을 둠  IP Sec  응용계층의 모든 응용서비스에 보안성 제공  VPN(Virtual Private.
1-1. How to Make a Strong First Impression vocabulary
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
Ubiquitous Computing Lab NS-3 Basic 박성진
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Domain Name System.
Project #2-2. Pintos User Program
Introduction to Django
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
TCP/IP 소켓 프로그래밍 - C 버전 중에서
제주지역대학 제주 새별오름 들불축제 지역 식생(植生) 변화 조사 연구
Department of Computer Engineering
Chapter 32 Analyzing Web Traffic
Internet Control Message Protocol (ICMP)
Internet Computing KUT Youn-Hee Han
Network Project (완료 보고서)
Java RMI (Remote Method Invocation)
Domain Name System (DNS)
Multi-thread Programming
Network Lab. Seoung Hyeon, Lee
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
English Communication 1
Mobile Messenger 오 경 민 추 선 득 김 용 구
데이터베이스 실험실 석사 2학기 김기훈 TCP/IP Socket Programming… 제 17장 멀티쓰레드 기반의 서버구현 데이터베이스 실험실 석사 2학기 김기훈
Department of Computer Engineering
멀티쓰레드 기반의 서버구현 School of Electronics and Information.
운영체제 허상복 컴퓨터시스템 연구실
Socket Address Structure and Byte Ordering Functions
Computer Architecture
Department of Computer Engineering
Socket Address Structure and Byte Ordering Functions
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
제9장 네트워킹 숙명여대 창병모 2011 가을.
UniSQL/X 실습과제 (1) ■ 실습 기간: ~
Department of Computer Engineering
임베디드 하드웨어 Report.
Network Programming(1)
Lecture 1. Overview of the Course
Professional Sales Negotiations
A Web-Based Little Man Computer Simulator
네트워크 프로그래밍의 이해 School of Electronics and Information.
제8장 네트워킹 숙명여대 창병모
Transmission Control Protocol (TCP)
CGI (Common Gateway Interface)
User Datagram Protocol (UDP)
Linux/UNIX Programming APUE (Thread Programming)
McGraw-Hill Technology Education
포트폴리오의 목적 전문성 개발 자신의 독창력 표현, 학습한 내용을 창의적으로 적용 취업
XML-II (eXtensible Markup Language) DTD/DOM
루프와 카운트 Looping and counting
문자열 처리하기 working with Strings
MONSTER CAR 구정재 한석우 김재형.
Java RMI (Remote Method Invocation)
PLEASE ENTER THE MAIN TITLE
제 9 장 ICMP 9.1 메시지 유형 9.2 메시지 형식 9.3 오류 보고 9.4 질의 9.5 검사합 9.6 ICMP 설계
Internet 인공지능연구실
Microprocessor Design and Application 마이크로 프로세서 설계 및 응용 2017 Spring
실시간 음성 채팅 서비스 (Voice Chatting Programe)
Peer-to-Peer SIP Network Using Distributed Hash Table
C.
Lecture 7 7-Segment LED controller using u-controller
Department of Computer Engineering
Presentation transcript:

Operating System Multiple Access Chatting Program using Multithread Han Jun Bae Korea University http://forbes.tistory.com/64

Project purpose Main purpose of this Project Understand Thread Develop to linux through C programming Enable to test on one computer (IP – 127.0.0.1) client1 server client2 client3

Function of socket program Function of program Server program Relay to chatting message between client and client. Enable to network connect many clients at the same time using multithread. Every message should be delivered to every connected client. Cilent program Should be able to connect to the server when you input the server IP and PORT. This program is able to input the message and output the message received from server. You can programming it if you know how to use the network related socket function even if you don’t have the enough knowledge about network.

Configuration of server and client Purchase phone Assigned phone number Listening Pick up the phone Conversation End of conversation Purchase phone Make a call Conversation End of conversation Connection request Transmitting and receiving data Connection determination

Multithread through chatting program Client1 Server Client2 Read Read Read Write Write Write Received messages from the client is sent to all clients. Send message.

pthread #include <pthread.h> Compile in Linux To use the pthread function, you should be declare the header file. http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread.h.html Compile in Linux gcc –c [compile target].c gcc –pthread –o [output file name] [compile target].c -pthread command connects library to use thread. ./server.o ./client.o

pthread int pthread_create( pthread_t *th_id, const pthread_attr_t *attr, void* 함수명, void *arg ); pthread 생성 첫 번째 인자 : pthread 식별자로 thread가 성공적으로 생성되면 thread 식별값이 주어진다. 두 번째 인자 : pthread 속성(옵션), 기본적인 thread 속성을 사용할 경우 NULL 세 번째 인자 : pthread로 분기할 함수. 반환값이 void* 타입이고 매개변수도 void* 으로 선언된 함수만 가능하다. ex) void* handler (void* arg) { ... } 네 번째 인자 : 분기할 함수로 넘겨줄 인자값. 어떤 자료형을 넘겨줄 지 모르기 때문에 void형으로 넘겨주고 상황에 맞게 분기하는 함수내에서 원래의 자료형으로 캐스팅해서 사용하면 된다. 리턴 값 : 성공적으로 pthread가 생성될 경우 0 반환

pthread int pthread_join( pthread_t th_id, void** thread_return ); 특정 pthread가 종료될 때까지 기다리다가 특정 pthread가 종료시 자원 해제시켜준다. 첫 번째 인자 : 어떤 pthread를 기다릴 지 정하는 식별자 두 번째 인자 : pthread의 return 값, 포인트로 값을 받아오는 점을 주의할 것 int pthread_detach( pthread_t th_id ); th_id 식별자를 가지는 pthread가 부모 pthread로부터 독립한다. 즉 이렇게 독립된 pthread는 따로 pthread_join()이 없어도 종료시 자동으로 리소스 해제된다.

example

Project Due date : November 29(wednesday) Multiple access chatting program using multithread Both client and server should be able to send and receive messages to each other. Program should be contain concept of multithread. A code file [filename.c] : 60% ex) server.c, client.c Include detailed comments inside your code

Project A word / hwp document that describes your program : 40% File name is your student number. ex) 2015000001.doc You can use any word program. You should be explain your program in detail. All the files are compressed into one file (ex: 2011000001.zip) Submit your zip file to qwerty2901@korea.ac.kr If you have any question, please mail me or use bulletin board in laboratory homepage(http://it.korea.ac.kr) or visit to laboratory(engineering bldg #236)