Computer195 TCP/IP 소켓 Accept 시 발생하는 ECONNABORTED 에 대해서.. UNIX에서 TCP 서버를 프로그래밍 시에 listen socket을 가지고 accept할경우 ECONNABORTED 에러가 발생 가능하다. UNIX에서 TCP 처리단계는 다음과 같다. TCP Three-way handshaking 은 다음과 같이 진행된다 이때 Connection이 형성 되면연결 요청 대기 큐에 쌓이게 되며 accept 함수는 이 요청을 위한 소켓을 생성하고 파일 디스크립터를 리턴하게 된다. 그런데 이 accept함수가 성공적으로 호출하기 전에 RST 가 수신되면 ECONNABORTED가 리턴되게 된다. BSD 커널은 accept 함수가 return 하지 않으며, SVR4는 EPROTO를 POSIX.1.g는 ECONNABORTED 를 발생 시킨다. 기본적으로 무시하면 된다.. 2009. 2. 3. 사업자 등록 번호 생성 1. 사업자 등록 번호는 10자리임 - ABC-DE-FGHIJ 2. J 결정 1) Sum = A*1+B*3+C*7+D*1+E*3+F*7+G*1+H*3 2) Sum = Sum + (I*5)/10; 3) Sum = 10 - Sum%10 4) J=Sum 3. 생성 로직 1) Random하게 A->I까지 생성 2) J는 2로직에 따라 결정 4. Ruby 스크립트 reg_no=[] mul_factor=[1,3,7,1,3,7,1,3] sum=0 7.times do |x| reg_no[x]=rand(9) sum=sum+reg_no[x]*mul_factor[x] end sum=sum+(sum*5)/10; sum=10-sum%10 reg_no[9]=sum corp_num='' reg_no.map { |x| corp_nu.. 2008. 12. 8. 법인 번호 생성 1. 법인 번호는 주민번화와 같이 13자리임 - ABCDEF-GHIJKLM 2. M은 다음으로 결정됨 1) Sum=(A*1 + B*2 + C*1 + D*2 + E*1 + F*2 + G*1 + H*2 + I*1 + J*2 + K*1 + L*2) 2) Sum=Sum%10 3) 만약 Sum==0 이면 Sum 그렇지 않으면 Sum=10-Sum 4) M은 Sum 임 3. 생성 방법은.. 1) A->L까지 랜덤 생성 2) M은 2로직으로 결정 ruby script는 다음과 같다. require 'date' reg_no=[] sum=0 12.times do |x| reg_no[x]=rand(9) multi_factor=x%2+1 sum=sum+reg_no[x]*multi_factor end sum=sum%10 sum.. 2008. 12. 8. 외국인 등록 번호 생성 1. 자리수 - 주민번호와 동일하게 앞 6자리 뒤 7자리임 - YyMmDd-ABCEFGH 2. 년도에 따른 변화 - 1900년대 생은 위의 A가 5 또는 6 - 2000년대 생은 위의 A가 7 또는 8 - 1800년대 생은 위의 A가 9 또는 0 중에 랜덤하게 생성 3. C 값 결정 - B*10+C 값이 2의 짝수 이어야 함 - 즉 C값이 짝수 이어야 함, 0,2,4,8 중에 하나로 랜덤하게 생성 4. G 값 결정 - G값은 6,7,8,9 중 하나이여야 함 - 6-9 까지 랜덤하게 생성 5. B,E,F 값을 랜덤하게 생성 6. H 값은 다음의 공식에 의해셔 결정된다 1) sum = 11-(Y*2 + y*3 + M*4 + m*5 + D*6 + d*7 + A*8 + B*9 + C*2 + E*3 + F*4 +.. 2008. 12. 8. PHP 에서 fsocket을 이용한 HTTP Client 작성 예 1. POST 메소드 2. PUT 메소드 3. GET 메소드 4. DELETE 메소드 2008. 11. 12. 데비안 리눅스에서 Ruby on Rails 설치 1. 데비안 인스톨 - netinstall버전으로 기본설정으로 데비안을 설치한다. (http://www.debian.org) - dselect로 package 환경 설정: access에 apt 부분에서 http를 이용하도록 - ssh 설치: apt-get install ssh - gcc 설치: apt-get install gcc - libc 설치: apt-get install libc6-dev - g++ 설치: apt-get install g++ - glibc 설치: apt-get install glibc - make 설치: apt-get install make - zlib 설치: apt-get install zlib1g-dev apt-get install libzlib-ruby (zlib를 설치 하지 .. 2008. 11. 2. 이전 1 ··· 21 22 23 24 25 26 27 ··· 33 다음