반응형
socket programming2023. 11. 18. 21:54pthread 사용한 C언어 TCP Socket 서버/클라이언트 예제

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 클라이언트 프로그램에서 입력한 문자열이 서버 프로그램으로..

프로그래밍 노트/C&C++2021. 1. 28. 21:42pthread 람다(lambda) 예제

pthread의 pthread_create 함수에서 람다(lambda)를 사용한 예제입니다.람다를 사용하면 따로 함수를 선언하지 않고 코드 내에 람다를 정의한 후, pthread_create에서 바로 사용할 수 있습니다.주의할 점은 람다 함수에서 지역변수만 접근 가능합니다. 윈도우의 경우 pthread를 Visual Studio에서 사용하려면 다음 포스트를 참고하세요. Visual Studio 2019에서 pthread 사용하는 방법https://webnautes.tistory.com/1452 2021. 01. 16 최초작성2021. 01. 28 최종작성 = 는 값 전달이고 &는 참조 전달이라고 하는데 테스트해본 결과는 좀 다른 듯합니다. =를 사용하면 지정한 변수만 값을 변경할 수 있고 &를 사용하면 ..

프로그래밍 노트/C&C++2021. 1. 4. 23:58Visual Studio 2019에서 pthread 사용하는 방법

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. 소스파일을 선택하고 마우스 우클릭하여 메..

OpenCV 3.1 예제 - OpenCV를 pthread, mutex와 같이 사용하기
OpenCV/OpenCV 강좌2016. 11. 25. 06:17OpenCV 3.1 예제 - OpenCV를 pthread, mutex와 같이 사용하기

pthread와 mutex를 OpenCV와 같이 사용하는 예제입니다. main함수에서 웹캠을 열어주고 UpdateFrame 스레드를 생성하고 UpdateFrame 스레드 에서는 웹캠으로 부터 영상을 넘겨주길 기다렸다가 그레이 영상으로 변환 후 화면에 출력합니다. 이때 뮤택스를 사용하여 공유자원인 frame으로의 접근 문제를 해결합니다. ESC키를 입력하게 되면 스레드를 강제 종료시키고 프로그램을 종료합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#include #i..

프로그래밍 노트/C&C++2015. 11. 14. 09:53linux echo server ( pthread 사용 )

#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); }..

반응형
image