2017/07 14

자바/Java nio 서버 테스트 영상ㅋ_ㅋ

음흠. 제가 뭐 서버 개발자도 아니고 되고싶은 학생일 뿐이고 이것저것 만들어 보다가 내가 만든 서버 테스트 영상을 찍게 되었슴돠~ 이쁘게 봐주세요~~:D C++서버를 "내식대로" 만들어진다면, 이 꾸진 자바 서버에 스레드풀을 첨가 할까 하는데 나쁘지 않아보이는군요..아무튼 즐감 되시길 바랍니다 ^^ 근데 해보니까 어디가 문제인지 알겠더군요.. 나중에 그건 고치도록!! 하겠습니다. #스레드풀이 절실하다!!ㅋㅋㅋㅋ#초당 천개 던지면 안전성이란게 없구만...#초당 백만개 던졌을때 올바르게 처리하는 서버를 만드는 그날까지!!ㅋㅋㅋ

java 2017.07.16

[메모장]IOCP [펌]

서버만드는데 있어 가장 중요한 IOCP. 좋은 자료가 있길레 적어둬야징ㅋ_ㅋ출처 - http://ozt88.tistory.com/23IOCP 개념 싱글 쓰레드로는 부족해 이전 게시물까지 이야기 했던 통지모델들은 싱글쓰레드 멀티플렉싱을 위한 확장처럼 보였다. 하지만 싱글쓰레드 스마트폰도 보기 힘든 2015년 현재, 굳이 하이엔드 스펙을 갖춘 서버에서 싱글쓰레드를 써야할까? 이전 멀티쓰레드형 서버의 문제는 컨텍스트 스위칭 비용이었다. 하지만 CPU개수만큼만 쓰레드를 사용한다면, 컨텍스트 스위칭 문제는 크게 문제가 되지 않는다. 그러니까 우리는 딱 CPU개수만큼만 쓰레드를 쓰는 서버를 만들고 싶다. 이 막연한 희망사항에 긍정적으로 대답해주는 것이 바로 윈도우의 IOCP이다. 어떻게 구현할 것인가? 수많은 I/..

c&c++ 2017.07.12

[메모장]Send/Recv,Read/Write 차이[펌]

이건 내가 나중에도 보고 지금도 볼수 있게 메모장으로 해놓은것.출처 - http://blog.naver.com/PostView.nhn?blogId=xenoheart&logNo=130128522839 Linux의 경우에 대한 이야기이다.Windows에서는 socket programming에서 read/write를 쓸 수 없다.read/write와 send/recv의 차이에 대해서 검색하다가 좋은 글이 있어 소개한다.영어로 된 글이어서 번역 및 정리를 하였다.원본은 다음 링크를 확인하자 : http://www.developerweb.net/forum/showthread.php?t=3878read/write가 socket에 대해서 동작할때는 마지막에 recv/send를 호출한다.recv/send는 매 I/O에..

c&c++ 2017.07.12

[자바/JAVA] nio 를 이용한 소켓 서버 (GUI 연동) 2.0 Version 5부 (클라이언트부분)

안녕하세요 jsieun 입니다. 이번에는 드디어 마지막 클라이언트 부분이 되겠습니다. 사실 클라이언트는 좀 대충 만든 감이 없지 않아 있습니다..ㅡㅡ;;일종의 테스트용으로 만든것이기 때문이라는 핑계가 있습니다 ㅋ_ㅋ그럼 소스를 보도록 하겠습니다.package JSieunPlatform; /* * 2017_07_09 2.0Version. * Copyright 2017. J.sieun all rights reserved. * 마음껏 사용하도 되나, 제이름은 적어주시길 바랍니다. * */ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt..

java 2017.07.10

[자바/JAVA] nio 를 이용한 소켓 서버 (GUI 연동) 2.0 Version 4부 (패킷부분)

안녕하세요 jsieun 입니다. 하루동안 포스팅 여러개 하는것도 은근 힘드네요.ㅜㅜ;이번에는 서버와 클라이언트 간에 패킷 송수신하게 도와주는 패킷에 대해서 포스팅을 하겠습니다.이건 그냥 사용하면 되는거라서 많이 짧습니다.package JSieunPlatform; /* * 2017_07_09 2.0Version. * Copyright 2017. J.sieun all rights reserved. * 마음껏 사용하도 되나, 제이름은 적어주시길 바랍니다. * */ import java.nio.ByteBuffer;public class JNetPacket { //================ // 변수들. //================ //정수형 데이터 private final static int INTEG..

java 2017.07.10

[자바/JAVA] nio 를 이용한 소켓 서버 (GUI 연동) 2.0 Version 3부 (서버Evt부분)

안녕하세요 jsieun 입니다. 요번에는 ServerStart.java 와 JSFrame.class 에 대해서 포스팅을 하도록 하겠습니다.즉, 서버 이벤트 처리와 GUI 에 대해서 설명하도록 하겠습니다.그럼 소스를 먼저 보도록 하겠습니다. package JSieunPlatform; /* * 2017_07_09 2.0Version. * Copyright 2017. J.sieun all rights reserved. * 마음껏 사용하도 되나, 제이름은 적어주시길 바랍니다. * */ import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; i..

java 2017.07.10

[자바/JAVA] nio 를 이용한 소켓 서버 (GUI 연동) 2.0 Version 2부 (서버부분)

안녕하세요 jsieun 입니다. 사용법- http://jsieun73.tistory.com/140 새롭게 업데이트된 nio-서버 구조에 대해서 사진으로 쉽게 설명하자면,아래 사진이라고 보시면 되겠습니다. 뼈대라고 부르는 JNetServer.java 안에 Bind, Accept, Read, Write, Disconnect, 등등..서버에 관련된 것들이 들어있고, ServerStart.java 안에는 클라이언트로 부터 받은 데이터를 가지고 이벤트 처리하는 즉, RecvMessage 가 있습니다. 그리고 사용자 편의를 위해서 GUI 를 넣어서 1초마다 Connect , DisConect, RegMsg 의 값을 갱신해주는 JSFrame.class 이렇게 있습니다.그럼 먼저 뼈대라고 부르는 소스부터 보도록 하겠습..

java 2017.07.10

[자바/JAVA] nio 를 이용한 소켓 서버 (GUI 연동) 2.0 Version 1부 (사용법)

안녕하세요 J.sieun 입니다.최근에 C++로 내식대로 서버 한번 만들어 보려다가 짜증나서 ㅡㅡ; 기존에 자바로 만든 서버를 좀 강화나 하자는 마음으로 자바 서버를 버전업!했습니다. :D 위 사진과 같이 인터페이스가 많이 이쁘게? 변했습니다 ㅋ_ㅋ우선 기능들에 대해서 간략히 보도록 하겠습니다.1. 동시에 클라이언트가 접속했을때 성능으로 인해 (나가리?)되는 클라이언트를 위해클라이언트 수 제한 현재 1000개2. 원하는 사람에게 보내기3. 로그인한 모든 사용자에게 보내기4. 그룹단위로 보내기(현재 3명당 한그룹으로 함)5. 원활한 연결해제6. 데이터 주고받는 사이즈 1000 으로 지정7. 이상한 데이터 들어오면 그 클라이언트 연결해제(보안기능)그럼 사용법에 대해서 설명하도록 하겠습니다.*사용법은 서버가 ..

java 2017.07.10

C/C++ byte[] to string 변환(cast)

이것은 byte -> string 형변환 함수입니다.(버퍼배열-> 문자열) 예를 들면 이런식으로 한글이나 아스키코드를 byte [] 로 바꿧는데 그것을 다시 한글이나 아스키코드로 디코딩을할려고 할때 형변환을 해줘야 하는데그럴땐 이거 그대로 작성하셔서 사용하시면 됩니다. 물론, 이건 제가 만들었습니다.사용법은 간단합니다. byte로 되어있는 배열과 그것을 변환하고 싶은 string 을 선언후 저 함수를 사용하시면 되겠습니다. 참고로 Enum(열거형) 에 BUF_SIZE 와 DATA 가 있는데 그것은 byte로 변환할때 앞에 사이즈와 실제 데이터를 말하는 것으로BUF_SIZE 의 값은 '0' 이고, DATA 는 '2' 입니다. 제가 만든 함수를 사용하실려면 byte배열안에 문자사이즈 빈공간 문자 문자 문자 ..

c&c++ 2017.07.04

stl를 이용한 MultiMap 사용

흔히 맵에 대해서는 잘 알것으로 생각이 듭니다. 맵을 한마디로 정의하면 Key값을 중복안되게 데이터값들을 저장하는 곳.. 하지만, Key 값이 중복되게하고 그 Key 값에 맞는 데이터 값들을 뽑아 사용할수 있는 자료구조도 필요합니다. 그리하여 MultiMap 이라는 것이 있습니다. (C/C++뿐만아니라 자바도 있고 물론 C#도 있습니다 :D) 간단한 예제를 보도록 하겠습니다. #include #include #include #include void main() { std::multimap MultiMap; int cnt = 0; //멀티맵에 랜덤값 집어넣기 for (int i = 0; i < 10; i++) { if (i % 3 == 0) { cnt++; } MultiMap.insert(std::mult..

c&c++ 2017.07.03