최대 100명까지 접속 가능한 서버와 서버를 통해 실시간 채팅은 유지하면서 다양한 기능을 사용하는 프로그램입니다. 최대한 실시간 채팅 기능을 유지하는 방향으로 만들었습니다. Flag 를 통해 더 많은 기능을 확장 할 수 있는 채팅 프로그램입니다. 구현된 기능 목록 1. 실시간 채팅 (닉네임 변경 가능) 2. 더치 페이 기능 (계산기 활용) 3. 미니 게임 기능 (가위바위보 활용) 4. 파일 공유 기능 (파일 전송 활용) 다중 접속 쓰레드 및 채팅은 아래의 블로그를 참고로 만들었습니다. https://good-coding.tistory.com/17 #include #include #include #include #include #include #include #include #include #define ..
서버 소켓은 하나하나 연결에 사용되는것이아닌 연결요청을 받아들이는 용도로만 사용한다 (리스닝소켓, 고객 맞이용 소켓) Iterative 서버의 구현 문자열 다 받을때 까지 기다리고(while), 다 받으면 받은것을 write 한다. 한번에 들어온 문자열을 한번에 받아준다를 가정하고 쓴 코드. TCP는 데이터의 경계가 없기때문에 어디가 끝인지를 전혀 모른다. 즉 거기있으면 다 받아버린다(쓰레기값이 같이들어감) read만. write는 한바이트씩 보냄 그래서 읽어들일때 while(recv_len
3. 캐시(난이도: 하) 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 입력..
---------------클라이언트의 프로세스 -----------------------전화기를 만들고, 커넥트한다. read write , close -------------- 5개의 함수만 알면된다. STREAM 방식은 IPPROTO_TCP 고정 DGRAM 방식은 IPPROTO_UDP 고정 socket(인터넷망,소캣방식,프로토콜) TCP : socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) UDP : socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) socket 함수 반환 값. ==> 0보다 큰 int 값, 소켓 디스크립터라고 부름 (소켓지정번호) #include #include int connect(int sockfd, const struct soc..
1.버튼을 클릭 --> 2.이벤트 객체가 발생 --> 3.이벤트 처리 이벤트 리스너 작성 과정 위의 경우는 클래스로 독립시켰지만, this를 사용해서 내부에서 바로 리스너를 만들 수도 있다. 위와 아래의 button은 다른 인스턴스임 위의 button에 아래의 button을 대입, 그 속성을 바꾸면 원래의 속성이 바뀜 인스턴스는 포인터처럼 원래의 값을 가리키고 있기 떄문 사용하는 방법은 여러가지가 있다. 다른클래스로 사용하기 package lect1111; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; class MyList..
계산기 기능은 구현하지 않았고, 프레임만 만들어보았다. JFrame 을 상속받아 만들었다. Set Size 는 아무런 레이아웃이 없을때만 작동한다. 레이아웃을 만들면 SetPreferredSize(new Dimeson(x,y) 로 조절해야한다. 레이아웃매니저가 알아서 사이즈를 조절해준다. (set size 는 강제로 사이즈 조정 == 무시) (setPreferredSize 는 부탁하는 입장 == 들어줌) package zzzzz; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.BoxLayout; import javax..
2. 다트 게임(난이도: 하) 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수^1 , 점수^2 , 점수^3 )으로 계산된다. 옵션으로 ..