컴퓨터 네트워크 수업에서 배운 TCP 기반 채팅 프로그램입니다. C 언어로 작성하였으며 주요 기능은 아래와 같습니다.
참고: gcc
로 chat_server.c
와 chat_clnt.c
를 각각 server
와 clnt
로 컴파일해서 오브젝트 파일을 생성합니다. 이때 server
는 7777 포트로 지정합니다.
-
클라이언트는 루프백 주소, 7777 포트 번호, 본인의 이름을 입력합니다. (이때 이름이 현재 접속 중인 인원들의 이름과 중복이 일어날 경우 새로운 이름으로 재지정해서 접속)
-
사용자들이 접속하면 임시방으로 모이게 되는데, 채팅을 하면 임시방에 접속한 인원들만 볼 수 있습니다.
-
@사용자 메시지
를 하면 특정 사용자에게만 귓속말로 채팅이 전송됩니다. (예:@dy hello
) -
@m 방번호 비밀번호
를 하면 입력한 방 번호로 방을 생성합니다. 만약 방 번호가 중복시 에러가 발생하고 재입력을 해야합니다. 또한 방 비밀번호를 틀렸을 시에도 재입력을 해야합니다. (예:@m 2 1234
) -
@e 방번호 비밀번호
를 하면 입력한 방 번호로 입장합니다. 만약 입력한 방 번호가 존재하지 않을 시 에러가 발생하고 재입력을 해야합니다. 또한 방 비밀번호를 틀렸을 시에도 재입력을 해야합니다. (예:@e 2 1234
) -
@all
이라고 하면 현재 서버에 접속한 모든 사람에게 채팅이 전송됩니다. (참고: 임시방에서 채팅을 하면 채팅방에 접속한 인원들에게는 해당 메시지가 전송되지 않음. 그래서@all
기능을 입력하여 서버에 접속한 모든 이에게 전송) -
@l
을 입력하면 현재 채팅방에 접속한 인원명과 인원수를 보여줍니다. -
@o
를 입력하면 현재 채팅방에 나옵니다. -
@d 금액
을 입력하면 현재 채팅방에 접속한 인원들에게 지불해야하는 금액과 더치페이한 인당 지불 금액을 보여줍니다. -
@p 사용자 금액
을 입력하면 사용자가 현재 프로그램 내에 접속하지 않은 사람이면 에러가 발생하고 재입력을 해야합니다. 또한 지불 금액이 현재 잔고보다 크면 에러가 발생하고 재입력을 해야합니다. 정상적으로 지불이 되었다면 사용자의 출금 후 남은 계좌와사용자(타겟)
에게 "OO님이 OO원을 보냈습니다"라고 알려줍니다. (예:@p dy 3000
)