전체 글 184

C/C++ String to Byte Cast(Unicode)변환.

유니코드로 구성된 문자열을 바이트배열로 변환하는 함수를 보여드리겠습니다.#include #include bool castByte(byte* &Buf,std::wstring Str) {enum{HEADER = 2};short Size = Str.size()*2;//..Short..Buf[0] = Size & 0xff;Buf[1] = (Size >> 8) & 0xff;memcpy_s(Buf + HEADER, Size, Str.c_str(), Size);return true;}bool castChar(byte Buf[], std::wstring &Str) {USHORT Size = Buf[0];wchar_t EcodeArr[16] = { 0 };memcpy_s(EcodeArr, Size, Buf + 2, Si..

c&c++ 2017.08.17

WSAGetLastError() 에러코드 번역.

요즘들어 포스팅을 아예 못하고있는데 그 원인이!! 바로 C++ 서버만들고 있어서 그렇습니다. 윈속부터 시작해서 IOCP 까지..서버다운 서버를 만들기 위해서 포스팅을 못하고 있습니다.ㅜㅜ 그러다 WSAGetLastError 라고 하는 아주 재밌는 녀석때문에 에러코드를 MSDN 가서 일일히 확인해야 되서 여기에 좀 메모좀 할려고 합니다.이름 값 설명 WSA_INVALID_HANDLE 6 지정된 이벤트 객체 핸들이 잘못 되었다. WSA_NOT_ENOUGH_MEMORY 8 메모리가 충분하지 않다. WSA_INVALID_PARAMETER 87 하나 이상의 잘못된 인자가 사용됐다. WSA_OPERATION_ABORTED 995 overlapped 연산이 중단 되었다. WSA_IO_INCOMPLETE 996 Ove..

c&c++ 2017.08.08

자바/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