'C' 카테고리의 글 목록
eull 님의 블로그
C/Project
C언어 다중 채팅 제작
2025.07.21
🌟 전체 구조 개요더보기시스템 아키텍쳐클라이언트 (cl.c) ←→ 소켓 통신 ←→ 서버 (serv.c) ←→ MySQL DB클라이언트: 사용자 인터페이스 및 서버의 통신 담당서버: 다중 클라이언트 관리, 채팅 중계, 데이터베이스 연동데이터베이스: 사용자 정보, 채팅 로그 저장 클라이언트 아키텍쳐 개요사용자 입력 → 송신 스레드 → 소켓 → 서버 ↑ ↓ 메인 스레드 수신 스레드 → 화면 출력 클라이언트 상태 머신초기상태 → 로그인/회원가입 → 메인메뉴 → 개인정보변경 or 채팅 ↑ ↑ ↓ └── 종료 ←── 로그아웃 ←───┘ /exit 🌟 서버 코드 분석..
C/Study
C언어 Newwork Study 5
2025.07.11
🌟 다중 접속 로그인 구현더보기//client #include #include #include #include #include #include #define BUF_SIZE 1024char global_pw[50] = "passw123";char global_id[50] = "user1";pthread_mutex_t input_mutex = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t output_mutex = PTHREAD_MUTEX_INITIALIZER;// 상태 관리용 enumtypedef enum { STATE_WAIT_LOGIN, STATE_LOGGED_IN} ClientState;ClientState client_state = STATE_WAIT_LO..
C/Study
C언어 Newwork Study 4
2025.07.11
🌟 로그인 구현 >> 로그인 후 >> ID 변경, PW 변경 구현더보기+ ID, PW 정보는 member 같은 구조체 자료형으로 구현 클라이언트에서 입력받은 ID, PW 를 서버로 전송서버에서 전달받은 ID, PW 체크 후 결과 클라이언트로 전송클라이언트에서 전달받은 결과에 따라 처리하는 로직 구현 // client#include // 표준 입출력 함수 (printf, scanf 등)#include // 일반 유틸리티 함수 (exit, atoi 등)#include // 문자열 처리 함수 (strcpy, strcmp, memset 등)#include // 유닉스 시스템 함수 (read, write, close 등)#include // 인터넷 주소 관련 함수 및..
C/Study
C언어 Newwork Study 3
2025.07.11
🌟 4-3 에코 클라이언트의 문제점더보기// echo_server.cwhile((str_len = read(clnt_sock, message, BUF_SIZE)) != 0) write(clnt_sock, message, str_len);// 서버는 클라이언트로부터 데이터를 여러 번에 걸쳐 수신할 수 있다고 생각하고 read()를 반복 호출함.// 수신한 만큼만 write()로 다시 전송함.// ehco_clientwrite(sock, message, strlen(message));str_len = read(sock, message, BUF_SIZE-1);// 클라이언트는 문자열을 한 번에 전송함// read()도 한 번만 호출해서 모든 데이터가 한 번에 수신되기를 기대함 해결책 1: read()..
C/Study
C언어 Newwork Study 2
2025.07.11
🌟 TCP/IP 소켓 프로그래밍 예제 분석_p21. hello_serve r.c 더보기#include // 표준 입출력 함수 사용 (예: printf, fputs)#include // 표준 라이브러리 함수 (예: atoi, exit 등 사용)#include // 문자열 처리 함수들 (예: memset 사용)#include // 유닉스 계열 시스템 함수 (예: read, write, close)#include // IP 주소 변환 등 네트워크 함수 (예: htons, htonl 등)#include // 소켓 관련 함수 (예: socket(), bind(), listen(), accept() 등)void error_handling(char *message);// 오류 발생 시 메시지 출력 후 프로그램 종..