pthread를 이용한 리눅스 윈도우상에 C언어 콘솔을 이용한 1:1채팅프로그램
*연*
다운로드
장바구니
소개글
C언어로 작성하였습니다. 서버와 클라이언트 프로젝트도 같이 압축 첨부하였습니다.간단한 1:1채팅 프로그램을 윈도우와 리눅스 간에 가능하도록 만든 프로그램 소스입니다.
스레드를 이용하여 핑퐁형식이 아닌 연속으로 채팅이 가능합니다.
스레드가 pthread를 사용하여서 윈도우 상에서 pthread를 사용하기 위해서는
pthread for win32 윈도우용 pthread 라이브러리를 다운받으시고 속성을 연결해주어야 합니다.
다운로드 하는 곳은 http://sourceware.org/pthreads-win32/
이곳에서 ftp://sourceware.org/pub/pthreads-win32/dll-latest 누르신후
dll/
include/
lib/
이걸 받으시면 됩니다.
첨부파일에 pthread 라이브러리를 같이 포함하였습니다.
사용방법은
- 프로젝트 -> 속성 -> VC++ 디렉터리로 간다.
- - 포함 디렉터리 항목에 다운받은 include 폴더를 추가하고,
- - 라이브러리 디렉터리 항목에 다운받은 lib 폴더를 추가한다.
- 프로젝트 -> 속성 -> 링커 -> 입력 -> 추가 종속성 항목에 LIB 파일들을 적어준다.
- 프로젝트 -> 속성 -> C/C++ -> 일반 -> 추가 포함 디렉터리에 include, lib 폴더를 모두 등록시킨다.
위의 절차를 하시면 사용 가능합니다.
채팅 프로그램은 서버와 클라이언트가 있는데
서버=윈도우, 클라이언트= 리눅스
서버=리눅스 , 클라이언트=윈도우
서버,클라이언트=윈도우
서버,클라이언트=리눅스
이렇게 4가지 환경에서 1:1채팅이 가능하고
프로그래밍 소스는 윈도우와 리눅스버전이 따로 있는게 아니라
#ifdef ,#else, #endif 로 작성하여
똑같은 소스를 윈도우나 리눅스에서 실행가능한 멀티 플랫폼 코드롤 작성하였습니다.
윈도우7 , visual studio 2005에서 작성하였고
VMware 8.0.3 build-703057로 ,리눅스 ubuntu 11.04를 설치하였고 리눅스 내에서, 이클립스와, gcc로 작성하였습니다.
컴파일 실행환경
GCC / Linux / visual studio 2005 / vmware로 리눅스 설치압축파일 내 파일목록
OneOnOne/OneOnOne/Debug/BuildLog.htm
OneOnOne/OneOnOne/Debug/OneOnOne.exe.embed.manifest
OneOnOne/OneOnOne/Debug/OneOnOne.exe.embed.manifest.res
OneOnOne/OneOnOne/Debug/OneOnOne.exe.intermediate.manifest
OneOnOne/OneOnOne/Debug/WSAEventSelect.obj
OneOnOne/OneOnOne/Debug/WSAServer.obj
OneOnOne/OneOnOne/Debug/chatserver.obj
OneOnOne/OneOnOne/Debug/mt.dep
OneOnOne/OneOnOne/Debug/pthreadVC2.dll
OneOnOne/OneOnOne/Debug/select.obj
OneOnOne/OneOnOne/Debug/vc80.idb
OneOnOne/OneOnOne/Debug/vc80.pdb
OneOnOne/OneOnOne/Release/BuildLog.htm
OneOnOne/OneOnOne/OneOnOne.vcproj
OneOnOne/OneOnOne/OneOnOne.vcproj.yonoo-PC.yonoo.user
OneOnOne/OneOnOne/WSAEventSelect.cpp
OneOnOne/OneOnOne/WSAServer.cpp
OneOnOne/OneOnOne/chatserver.cpp
OneOnOne/OneOnOne/select.cpp
OneOnOne/debug/OneOnOne.exe
OneOnOne/debug/OneOnOne.ilk
OneOnOne/debug/OneOnOne.pdb
OneOnOne/debug/pthreadVC2.dll
OneOnOne/release/pthreadVC2.dll
OneOnOne/OneOnOne.ncb
OneOnOne/OneOnOne.sln
OneOnOne/OneOnOne.suo
OneOnOne/pthreadVC2.dll
OneOnOneClient/OneOnOneClient/Debug/BuildLog.htm
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.embed.manifest
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.embed.manifest.res
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.intermediate.manifest
OneOnOneClient/OneOnOneClient/Debug/chatclient.obj
OneOnOneClient/OneOnOneClient/Debug/mt.dep
OneOnOneClient/OneOnOneClient/Debug/vc80.idb
OneOnOneClient/OneOnOneClient/Debug/vc80.pdb
OneOnOneClient/OneOnOneClient/Release/BuildLog.htm
OneOnOneClient/OneOnOneClient/Release/OneOnOneClient.exe.intermediate.manifest
OneOnOneClient/OneOnOneClient/Release/chatclient.obj
OneOnOneClient/OneOnOneClient/Release/mt.dep
OneOnOneClient/OneOnOneClient/Release/vc80.idb
OneOnOneClient/OneOnOneClient/Release/vc80.pdb
OneOnOneClient/OneOnOneClient/OneOnOneClient.vcproj
OneOnOneClient/OneOnOneClient/OneOnOneClient.vcproj.yonoo-PC.yonoo.user
OneOnOneClient/OneOnOneClient/TCPClient.cpp
OneOnOneClient/OneOnOneClient/chatclient.cpp
OneOnOneClient/debug/OneOnOneClient.exe
OneOnOneClient/debug/OneOnOneClient.ilk
OneOnOneClient/debug/OneOnOneClient.pdb
OneOnOneClient/release/OneOnOneClient.exe
OneOnOneClient/release/OneOnOneClient.pdb
OneOnOneClient/release/pthreadVC2.dll
OneOnOneClient/OneOnOneClient.ncb
OneOnOneClient/OneOnOneClient.sln
OneOnOneClient/OneOnOneClient.suo
pthread/dll/md5.sum
pthread/dll/pthreadGC2.dll
pthread/dll/pthreadGCE2.dll
pthread/dll/pthreadVC2.dll
pthread/dll/pthreadVCE2.dll
pthread/dll/pthreadVSE2.dll
pthread/include/md5.sum
pthread/include/pthread.h
pthread/include/sched.h
pthread/include/semaphore.h
pthread/lib/libpthreadGC2.a
pthread/lib/libpthreadGCE2.a
pthread/lib/md5.sum
pthread/lib/pthreadVC2.lib
pthread/lib/pthreadVCE2.lib
pthread/lib/pthreadVSE2.lib
OneOnOne/OneOnOne/Debug/OneOnOne.exe.embed.manifest
OneOnOne/OneOnOne/Debug/OneOnOne.exe.embed.manifest.res
OneOnOne/OneOnOne/Debug/OneOnOne.exe.intermediate.manifest
OneOnOne/OneOnOne/Debug/WSAEventSelect.obj
OneOnOne/OneOnOne/Debug/WSAServer.obj
OneOnOne/OneOnOne/Debug/chatserver.obj
OneOnOne/OneOnOne/Debug/mt.dep
OneOnOne/OneOnOne/Debug/pthreadVC2.dll
OneOnOne/OneOnOne/Debug/select.obj
OneOnOne/OneOnOne/Debug/vc80.idb
OneOnOne/OneOnOne/Debug/vc80.pdb
OneOnOne/OneOnOne/Release/BuildLog.htm
OneOnOne/OneOnOne/OneOnOne.vcproj
OneOnOne/OneOnOne/OneOnOne.vcproj.yonoo-PC.yonoo.user
OneOnOne/OneOnOne/WSAEventSelect.cpp
OneOnOne/OneOnOne/WSAServer.cpp
OneOnOne/OneOnOne/chatserver.cpp
OneOnOne/OneOnOne/select.cpp
OneOnOne/debug/OneOnOne.exe
OneOnOne/debug/OneOnOne.ilk
OneOnOne/debug/OneOnOne.pdb
OneOnOne/debug/pthreadVC2.dll
OneOnOne/release/pthreadVC2.dll
OneOnOne/OneOnOne.ncb
OneOnOne/OneOnOne.sln
OneOnOne/OneOnOne.suo
OneOnOne/pthreadVC2.dll
OneOnOneClient/OneOnOneClient/Debug/BuildLog.htm
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.embed.manifest
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.embed.manifest.res
OneOnOneClient/OneOnOneClient/Debug/OneOnOneClient.exe.intermediate.manifest
OneOnOneClient/OneOnOneClient/Debug/chatclient.obj
OneOnOneClient/OneOnOneClient/Debug/mt.dep
OneOnOneClient/OneOnOneClient/Debug/vc80.idb
OneOnOneClient/OneOnOneClient/Debug/vc80.pdb
OneOnOneClient/OneOnOneClient/Release/BuildLog.htm
OneOnOneClient/OneOnOneClient/Release/OneOnOneClient.exe.intermediate.manifest
OneOnOneClient/OneOnOneClient/Release/chatclient.obj
OneOnOneClient/OneOnOneClient/Release/mt.dep
OneOnOneClient/OneOnOneClient/Release/vc80.idb
OneOnOneClient/OneOnOneClient/Release/vc80.pdb
OneOnOneClient/OneOnOneClient/OneOnOneClient.vcproj
OneOnOneClient/OneOnOneClient/OneOnOneClient.vcproj.yonoo-PC.yonoo.user
OneOnOneClient/OneOnOneClient/TCPClient.cpp
OneOnOneClient/OneOnOneClient/chatclient.cpp
OneOnOneClient/debug/OneOnOneClient.exe
OneOnOneClient/debug/OneOnOneClient.ilk
OneOnOneClient/debug/OneOnOneClient.pdb
OneOnOneClient/release/OneOnOneClient.exe
OneOnOneClient/release/OneOnOneClient.pdb
OneOnOneClient/release/pthreadVC2.dll
OneOnOneClient/OneOnOneClient.ncb
OneOnOneClient/OneOnOneClient.sln
OneOnOneClient/OneOnOneClient.suo
pthread/dll/md5.sum
pthread/dll/pthreadGC2.dll
pthread/dll/pthreadGCE2.dll
pthread/dll/pthreadVC2.dll
pthread/dll/pthreadVCE2.dll
pthread/dll/pthreadVSE2.dll
pthread/include/md5.sum
pthread/include/pthread.h
pthread/include/sched.h
pthread/include/semaphore.h
pthread/lib/libpthreadGC2.a
pthread/lib/libpthreadGCE2.a
pthread/lib/md5.sum
pthread/lib/pthreadVC2.lib
pthread/lib/pthreadVCE2.lib
pthread/lib/pthreadVSE2.lib