Engineering 302

svn diff 를 vimdiff 로 변경하는 방법

svn 에서 변경사항 확인시, diff 를 많이 사용하지만 window 용보다는 활용도가 떨어진다. svn 은 editor 뿐만 아니라, diff 프로그램도 타 프로그램을 직접 등록할 수 있다. 그래서 vimdiff 연동되는 방법을 알아보았다. svn books(http://svnbook.red-bean.com/en/1.4/svn.advanced.externaldifftools.html) 에서 해당 내용을 추출해서 정리하자면, 작업 환경이 리눅스라면 적당한 홈 디렉토리(/root/diffwrap.sh) 에 아래와 같은 sh 파일을 하나 만든다. 물론 실행 권한을 주고.. ----------------------------------------------------- #!/bin/sh # Configure..

Engineering/Etc 2010.06.29

unix socket 을 이용하는 예제

유닉스 소켓을 이용해서 동일 서버의 프로그램과 통신할 일이 있다. 사용 예제를 정리해본다. /* Sample userspace kHTTPd logging-daemon Note: This logging-daemon is only intended to serve as an example on how to communicate with the kHTTPd logging system. This daemon is by no means intended for real usage and is not secure enough for usage on systems with "hostile" users. This might change in the future though. */ #include #include #incl..

Engineering/Network 2010.06.24

sendmail 이 포워딩이 안될 경우

특정 아이디 디렉토리에 .forward 파일을 설정하고, 분명히 user 외에 다른 write 권한을 삭제를 했는데도 메일 포워딩이 안되는 경우가 있었다. mail SEND_USER 로 메일을 보내면, /var/log/maillog 에서 다음과 같이 "Permission denied" 가 나온다. /home/SEND_USER/.forward 파일은 정상적인 권한을 가지고 있다. 더군다나, sendmail 는 root 의 setuid 를 가지기 때문에 에러 메시지 자체가 이해가 되지 않았다. 또, 다른 아이디로 테스트했을때는 포워딩이 잘 되더라. (-> 이 부분은 따로 원인을 찾아봐야 할거 같다.) # ls -la /home/SEND_USER/.forward -rwxr-xr-x. 1 SEND_USER US..

Engineering/Etc 2010.06.15

linux 에서 fd_set MAX 변경

select 에서 사용하는 fd 는 최대 1024 개이다. 최대값을 변경하기 위해서는 "/usr/include/bits/typesizes.h" 의 __FD_SETSIZE 값을 변경하고, 컴파일해야한다. /* Number of descriptors that can fit in an `fd_set'. */ #define __FD_SETSIZE 1024 참고로, fd 와 관련된 상수값들은 - "/usr/include/sys/select.h" typedef long int __fd_mask; #define __NFDBITS (8 * sizeof (__fd_mask)) typedef struct { __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; } fd_set; fd_set..

Engineering/Network 2010.06.14

채팅 서버 - epoll 버전

채팅 클라이언트와 이어지는 채팅 서버이다. 이번엔 리눅스에서 epoll 을 사용해서 간단한 서버 버전을 작성했다. CreateTCPServerSocket() 은 The Pocket Guide to TCP/IP Sockets 에 있던 예제를 참조하였다. #include #include #include #include #include #include #include #include #include #include #include #define SERV_PORT8787 #defineMAX_THREAD_CNT100 #defineMAX_CLI_CNT10 #define MAX_BUFF_SZ1024 #defineUNUSED0 #defineUSED1 typedef struct { intsockfd; intused; i..

Engineering/Network 2010.06.14

채팅 서버(윈도우용) - select 버전

채팅 클라이언트와 이어지는 서버 프로그램이다. 역시 인터넷에서 구한 소스를 수정한 것이다. select 를 이용해서 클라이언트 연결을 관리하는 간단한 버전이라 개선의 여지가 많다. #include #include #include #include #define LINE1024 #define MAXCLIENT5 #defineSERV_PORT8787 int maxfdp1; int chatuser;// 채팅 참가자 수 unsigned int client_s[MAXCLIENT]; char *escape = "/quit";// 종료 명령 /* i번째 유저 계정삭제 */ void disconCli(int i) { closesocket(client_s[i]);// i번째 소켓 닫음 if (i == chatuser-1)..

Engineering/Network 2010.06.14

채팅 클라이언트(윈도우용)

인터넷에 구한 채팅 클라이언트 소스를 수정해보았다. 너무 간단하게 작성한 것이라, 기능 추가하려면 이것저것 고쳐야 할것이 많지만 간단한 채팅 기능을 확인할 수 있다. vc 를 컴파일시에는 Winsock2 를 사용하므로, ws2_32.lib 를 링크시켜야한다. #include #include #include #include #define LINE 1024 DWORD WINAPI ProcessInputSend(LPVOID arg); char userID[10];// 유저ID char line[LINE], chatdata[LINE+1]; struct sockaddr_in server_addr; SOCKET serversocket;// 서버 연결 소켓 char *escape = "/quit";// 종료 명령 B..

Engineering/Network 2010.06.14

vmware server trouble 해결

vmware server 버전을 사용할 때, 문제가 생겨 구글링을 통해서 해결했던 적이 있다. 지금(2010년 6월 기준)은 player 버전에서도 이미지를 생성할 수 있는것으로 하는데, 그때 해결 했던 내용들을 정리하고자 한다. vmserver 2 is a web based system. and works good with a internet connection. FAQ is for the windows systems - xp , vista , etc maybe windows 7 A users manual is located at http://www.vmware.com/pdf/vmserver2.pdf ( approx 4MB ) includes other o/s setups The system runs ..

Engineering/Etc 2010.06.09