반응형 프로그래밍45 호스트 IP 주소 얻기 -인자로 전달한 문자열 포인터에 호스트 IP 주소를 저장한다. #include #include void GetHostIP(char* ip){ WORD wVersionRequested; WSADATA wsaData; char name[255]; PHOSTENT hostinfo; wVersionRequested = MAKEWORD(2,0); if(WSAStartup(wVersionRequested,&wsaData) == 0){ if(gethostname(name,sizeof(name)) ==0){ if((hostinfo = gethostbyname(name)) != NULL){ strcpy(ip,inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list)); } } } WSA.. 2011. 7. 4. 파일 다운로드 하기 -인자로 전달받은 URL로부터 파일을 다운로드 받습니다. ex:)GetFile("http://localhost/file.exe","c:\\file.exe"); //http://localhost/file.exe 에서 파일을 다운받아 c:\file.exe에 저장 #include #include BOOL GetFile(char* url,char* dstPath){ HRESULT hr; hr=URLDownloadToFile(NULL,url,dstPath,0,NULL); if(hr == S_OK){ return TRUE; } return FALSE; } 2011. 7. 4. 시스템 드라이브 목록 얻기 -현재 시스템의 드라이브 목록을 얻습니다. #include #include int main(){ int cnt; int i; int drvType; char drvRoot[104]; char path[7]="A:/*.*"; //드라이브 목록을 불러옴 cnt=GetLogicalDriveStrings(104,drvRoot); for(i=0;i 2011. 7. 4. 운영체제 정보 얻기 -현재 실행중인 운영체제의 정보를 얻습니다. #include #include void printOSInfo(){ OSVERSIONINFO info; info.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&info); printf("Major : %d\n",info.dwMajorVersion); printf("Minor : %d\n",info.dwMinorVersion); printf("ServicePack : %s\n",info.szCSDVersion); } 2011. 7. 4. 콘솔 텍스트 출력하기 -콘솔의 원하는 위치에 텍스트를 출력합니다. ex:) printText("Hello World!!",3,DEFAULT,RIGHT); //오른쪽 정렬로 우측 3칸을 비우고 현재 라인에 문자열 출력 #include #include //텍스트 출력 정렬 #define LEFT -1 #define CENTER 0 #define RIGHT 1 //기본 좌표 #define DEFAULT -1 void printText(char* buffer,int x,int y,int align){ COORD cr; CONSOLE_SCREEN_BUFFER_INFO info; int width; //콘솔 너비 int height; //콘솔 높이 GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPU.. 2011. 7. 4. 콘솔 창 숨기기 -현재 실행중인 콘솔 창을 보이지 않게 숨긴다. #include #define BUFSIZE 512 int main(){ HWND hwnd; char title[BUFSIZE]="My Title"; SetConsoleTitle(title); //타이틀 설정 hwnd=FindWindow(NULL,title); //타이틀에 해당하는 윈도우 핸들 얻기 ShowWindow(hwnd,SW_HIDE); //숨김 옵션 설정 return 0; } 2011. 7. 4. 파일 관련 API GetCurrentDirectory -현재 실행중인 파일의 경로를 리턴한다. GetModuleFileName -현재 실행중인 파일의 경로와 파일명을 리턴한다.(2번째 인자 이용) SetFilePointer(hfile,IDistanceToMove,IDistanceToMoveHigh,dwMoveMethod) -파일 포인터의 위치를 설정한다. ▶hfile : 파일 핸들러 ▶IDistanceToMove : 주소 지정 ▶IDistanceToMoveHigh : 64bit 주소 지정에 사용 ▶dwMoveMethod : 움직일 방향 (시작 지점) -FILE_BEGIN : 파일 시작 지점 (0) -FILE_CURRENT : 현재 포인터 위치 (1) -FILE_END : 파일 마지막 지점 (2) ReadFile(hFile.. 2011. 5. 10. Java_btry Server & Client 소스 ※주의 사항 : 2008년도에 JAVA 시작하면서 심심풀이로 만든 코드이므로 버그 난무 & 취약점 난무 & 막장 소스입니다. /**************명령 번호 표***************** * 000 유저 생성 * 100 위치 이동 * 200 탐색 * 201 적 발견 * 202 무기 발견 * 203 음식 발견 * 204 탐색 실패 * 300 유저 상태 변경 * 400 회복 * 500 음식 조합 * 888 채팅 * 900 정보요청 * 999 유저 삭제 ******************************************/ bufferedReader는 라인 단위로 읽어들이니 전송할때 명령어번호\n명령\n 식으로 보내면 쉽게 해결된다. ex:)"100\nUsrPlace\n" -----------.. 2010. 8. 11. Java와 Mysql 연동시 한글 깨짐 문제 해결법 public String toMySQL(String msg){ try{ return new String(msg.getBytes("KSC5601"), "8859_1"); }catch(Exception e){ e.printStackTrace(); return null; } } public String toJava(String msg){ try{ return new String(msg.getBytes("8859_1"), "KSC5601"); }catch(Exception e){ e.printStackTrace(); return null; } } 두개의 메서드를 구현해주어 전송하거나 전송 받을 쿼리문자를 인코딩 해주면 된다. 2010. 8. 11. C에서 입력 버퍼를 비울 때 피해야할 방법 [강좌] C에서 입력 버퍼를 비울 때 피해야할 방법 (C언어를 배우자) |작성자 네가티브 #include int main(int argc, char *argv[]) { int d; while(1) { scanf("%d", &d); printf("%d\n", d); } return 0; } 실행해보시면 숫자를 입력할 시 그 숫자가 화면에 출력되는 형태로 무한 반복됨을 알 수 있습니다. 그런데, 여기에 문자를 입력하면 무한 루프에 빠지게 됩니다. 이걸 방지하고자 초보자들은 아래와 같은 코드를 작성하기도 합니다. #include int main(int argc, char *argv[]) { int d; while(1) { fflush(stdin); // 입력 버퍼를 비운다. scanf("%d", &d); pr.. 2010. 8. 11. JWS 자동 설치(ActiveX) HTML 코드 http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=6,0,0,0" classid="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284" height=0 width=0> 2010. 8. 11. maze 싱글 소스 2010. 8. 11. readn() & writen() 코드, unpipc.h 파일 unpipc.h 를 include 하고 사용한다. 일반 read()&write() 함수와 사용법은 같다. readn ssize_t readn(int fd, void *vptr, size_t n) { size_t nleft; ssize_t nread; char *ptr; ptr = vptr; nleft = n; while (nleft > 0) { if ( (nread = read(fd, ptr, nleft)) < 0) { if (errno == EINTR) nread = 0; /* and call read() again */ else return(-1); } else if (nread == 0) break; /* EOF */ nleft -= nread; ptr += nread; } return(n - nl.. 2010. 8. 11. curses.h,ncurses.h 가 없을 경우 yum install ncurses-devel 2010. 8. 11. gcc mysql.h 컴파일 gcc -o test -I/usr/local/mysql/include -L/usr/local/mysql/lib/mysql -lmysqlclient test.cpp 2010. 8. 11. 자바 로그인 예제 import java.awt.*; public class Login extends Frame{ TextField t1=new TextField(" "); TextField t2=new TextField(" "); Button b1=new Button("확인"); Button b2=new Button("취소"); Label l1=new Label("ID"); Label l2=new Label("password"); Label l3=new Label(); Label l4=new Label(); Label l5=new Label(); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); GridLayout g1=new GridLayout(1,5).. 2010. 8. 11. 자바 컴포넌트 예제 import java.awt.*; public class ButtonTest extends Frame{ Button b1=new Button("7"); Button b2=new Button("8"); Button b3=new Button("9"); Button b4=new Button("+"); Button b5=new Button("4"); Button b6=new Button("5"); Button b7=new Button("6"); Button b8=new Button("-"); Button b9=new Button("1"); Button b10=new Button("2"); Button b11=new Button("3"); Button b12=new Button("*"); Button b13=ne.. 2010. 8. 11. ncurses 프로그래밍 http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/ncurses_%C7%C1%B7%CE%B1%D7%B7%A1%B9%D6 2010. 8. 11. 리눅스 로케일 세팅 http://kldp.org/node/59797 gcc aa.c -o aa -lncursesw 쉘에서의 로케일과 프로그램의 로케일이 다르기 때문에, 프로그램 안에서도 로케일을 세팅해 줘야 한글이 제대로 나오게 됩니다. 또, 라이브러리의 차이점은 ncursesw -> utf8, euckr 둘다 지원 ncurses -> euckr 지원 wchar를 지원해주고 않해주고의 차이입니다. 따라서 ncursesw 는 utf8이 지원이 되고, ncurses는 utf8이 지원이 않되는 것입니다. 따라서 코딩은 다음과 같이 해주면 해결이 될것입니다. getenv("LANG" )으로 쓰시면 편할것으로 예상됩니다. ko_KR.utf8 로 하시면 utf8로 나올것이고, ko_KR.eucKR 로 하시면 euckr로 나올것입니다... 2010. 8. 11. 리눅스 curses.h 설명 [리눅스프로그래밍]6.Curses Curses Curses를 사용한 프로그램의 컴파일 방법 끝에 '-lncurses'를 추가해서 컴파일한다. 개념 stdscr구조체는 표준화면이다. stdout와 비슷하다고 할 수 있다. 윈도우에 대한 출력은 refresh를 호출하기 전까지는 실제 화면에 나타나지 않는다. curses 라이브러리는 stdscr과 curscr을 비교해서 수행한다. curses 프로그램에서 문자출력처리는 (1)curses함수를 사용하여 논리적인 화면을 갱신하고, (2)curses에게 요청하여 물리적인 화면을 refresh로 갱신한다. curses 프로그램은 실제 사용 이전에 initscr로 라이브러리를 초기화하여야 하며, 사용 이후에는 endwin으로 설정을 복구하도록 해야 한다. 기본적인 출.. 2010. 8. 11. 이전 1 2 3 다음 반응형