pthread를 사용한 C언어 TCP 소켓 서버/클라이언트 예제입니다. 2021. 7. 4 최초작성 2023. 11. 18 코드 설명 추가 원본 코드 출처는 아래 깃허브 저장소입니다. https://github.com/shineyr/Socket 다음처럼 코드를 컴파일합니다. $ gcc -o server server.c -lpthread $ gcc -o client client.c -lpthread 터미널을 두개 사용하여 다음처럼 코드를 실행합니다. 1. 서버 프로그램 실행 ./server 2. 클라이언트 프로그램 실행 - 같은 피시가 아니면 127.0.0.1 대신에 서버 프로그램이 실행된 PC의 IP를 사용합니다. ./client 127.0.0.1 클라이언트 프로그램에서 입력한 문자열이 서버 프로그램으로..
pthread의 pthread_create 함수에서 람다(lambda)를 사용한 예제입니다.람다를 사용하면 따로 함수를 선언하지 않고 코드 내에 람다를 정의한 후, pthread_create에서 바로 사용할 수 있습니다.주의할 점은 람다 함수에서 지역변수만 접근 가능합니다. 윈도우의 경우 pthread를 Visual Studio에서 사용하려면 다음 포스트를 참고하세요. Visual Studio 2019에서 pthread 사용하는 방법https://webnautes.tistory.com/1452 2021. 01. 16 최초작성2021. 01. 28 최종작성 = 는 값 전달이고 &는 참조 전달이라고 하는데 테스트해본 결과는 좀 다른 듯합니다. =를 사용하면 지정한 변수만 값을 변경할 수 있고 &를 사용하면 ..
Visual Studio 2019에서 pthread 사용하는 방법을 다룹니다. 2021. 1. 4 최초작성 1. 아래 링크에서 pthreads-w32-2-9-1-release.zip를 다운로드 합니다. http://sourceware.org/pub/pthreads-win32/ 2. 압축을 풀어서 Pre-built.2 폴더 이름을 pthread로 바꾼 후, C:\에 복사합니다. 3. 새 프로젝트 만들기를 클릭합니다. 4. Windows 데스크톱 마법사를 클릭하고 다음 버튼을 클릭합니다. 5. 프로젝트 이름을 적은 후, 만들기를 클릭합니다. 6. 애플리케이션 종류로 콘솔 애플리케이션을 선택한 후, 추가 옵션에서 빈 프로젝트를 체크한 후, 확인 버튼을 클릭합니다. 7. 소스파일을 선택하고 마우스 우클릭하여 메..
pthread와 mutex를 OpenCV와 같이 사용하는 예제입니다. main함수에서 웹캠을 열어주고 UpdateFrame 스레드를 생성하고 UpdateFrame 스레드 에서는 웹캠으로 부터 영상을 넘겨주길 기다렸다가 그레이 영상으로 변환 후 화면에 출력합니다. 이때 뮤택스를 사용하여 공유자원인 frame으로의 접근 문제를 해결합니다. ESC키를 입력하게 되면 스레드를 강제 종료시키고 프로그램을 종료합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#include #i..
#include #include #include #include #include #include #include #include #include #include #include #include #include struct thread_data{ int fd; char ip[20]; }; void *ThreadMain(void *argument); // get sockaddr, IPv4 or IPv6: void *get_in_addr(struct sockaddr *sa) { if (sa->sa_family == AF_INET) { return &(((struct sockaddr_in*)sa)->sin_addr); } return &(((struct sockaddr_in6*)sa)->sin6_addr); }..