본문 바로가기

Study/Programming

경매 프로그램(최고액 블라인드 경매방식)

경매 프로그램(최고액 블라인드 경매방식)


소켓을 이용한 경매 프로그램 작성


서버(멀티쓰레드 및 동기화 기법 사용)

Input - 경매품목, 최초금액, 경매시간

Output - 경매시간 중 - 2위 입찰금액, 잔여시간, 입찰인 수

             경매마감 : 낙찰금액, 낙찰인 ID 및 IP, 낙찰인에게 축하메시지


클라이언트

Input - 입찰금액

Output - 경매시간 중 - 자신보다 상위금액 입찰시 통보, 잔여시간

             경매마감 : 낙찰금액, 낙찰인 ID 및 IP

             낙찰인 : 1위 입찰금액 - 2위 입찰금액 만큼의 환불, 출하메시지




표준입력 (stdin)

표준출력 (stdout)

표준오류 (stderr)



fgets (char *, int, FILE *);      파일로부터 지장한 사이즈만큼 문자열을 가져오는 함수

fgetc (FILE *);                      파일로부터 한문자씩 가져오는 함수

int fputc(int, FILE *);              파일에 한문자씩 저장

int fputs(const char*, FILE *); 파일에 문자열 단위로 저장


WSAStartup() : 윈도우 소켓 버전을 알리고, 구조체 변수의 주소 값 전달라이브러리 초기화 작업 진행

WSACleanup(void) : 윈속 라이브러리 윈도우 운영체제에 반환

socket() : 소켓 생성

bind() : IP주소와 PORT번호 할당을 목적

listen() : 연결요청 가능상태로 변경

accept() : 클라이언트에서 연결요청을 수락할때 호출

connect() : 연결요청시 호출

closesocket() : 소켓을 닫을 때 호출


SOCKET hSocket; // socket 함수 반환값 저장을 위해 SOCKET 형 변수 선언

hSocket=socket(PF_INET, SOCK_STREAM, 0); //  socket 함수호출을 통해 TCP 소켓을 생성


윈도우 기반 입출력 함수

send() : 윈도우 기반 데이터 송신

recv() : 윈도우 기반 데이터 수신

리눅스에서는  read(), write()