기본 콘텐츠로 건너뛰기

TCP/IP소켓 프로그래밍 아래 열 수 있는 파일개수 변경

getrlimit함수를 이용해 현재 프로세스가 열수있는 파일의 제한값을 가져온 후 1024값씩 추가시켜줌. 아래는 출력결과 컴파일시 3개의 경고문이 뜨는데 그냥 무시.... warning은 무시무시무시~~  에러인줄 알고 순간 당황했지만 당황하지 않고 빠른 실행~  

TCP/IP소켓 프로그래밍 표준입출력을 이용한 출력 프로그램

memset으로 메모리 초기화를 해주고( 직접 초기화를 해주어야 한다.) read 함수에서 입력을 기다린후 write함수에서 출력.. 그냥 prinf랑 scanf..... 전달 인자값만 다를뿐.... 아래는 출력 결과

TCP/IP소켓 프로그래밍 프로그램의 반환 값..

프로그램이 성공을 하게 되면 0값을 반환하게 된다. 실패를하게 되면 0보다 큰 수를 반환하게 된다. 논리연산에서는 0값은 거짓, 0이외의 수는 참값이 되는데 왜 실패를 하게될떄 0보다 큰수를 반환하게 될까? 에러로 인하여 프로그램이 실패할시 어떠한 에러로 인하여 프로그램이 종료됬는지 쉽게 알려주기 위함이다. 만약에 에러로인하여 종료가 될시 0으로 통일된 값이 반환될 경우  프로그래머는 어느 부분에서 에러가 발생 했는지 디버깅 하기가 쉽지는 않게된다. 그래서 프로그램이 성공하면 0값을 반환하게 되고 에러로 프로그램이 실패하게 되면 각각에 따른 0을 넘는 숫자가 반환이 된다. socket 에러 : 1값 반환 connet 에러 : 2값 반환 database 에러 : 3값 반환 알수 없는 에러 : 4값 반환 이렇게 각각에 따른 반환값을 주게 된다. 반드시 이렇게 하는것은 아니지만  이렇게 반환값을 줌으로써 좀더 빠른 디버깅을 할수 있게 될것이다. 이처럼 구현을 할수 있을 것이다. int re = 특정 함수; 1 2 if ( ! re) { 정상 실행} else  {re출력} cs 이런식으로 구현이 될 것이다 .

TCP/IP소켓(socket) 프로그래밍 에코서버(echo Server)와 에코 클라이언트(echo client)구현.....

하 socket함수랑 bind함수만 좀 공부하고 그냥 바로 예제 코드로 넘어감 바로 구현해보는게 더 이해도가 높을것으로 판단..... 이제 다시 소스 분석을.........대충 흐름은 알것 같긴하다... ㅋㅋ 따라 치기만 했는데도 먼가 자꾸 에러가 ㅋㅋㅋ 에러 찾는데도 시간이 은근히 잡아먹혀서 애좀 먹음;; 살짝식 바꿔가면서 따라쳤다가 결국은 예제 그대로 침;; ㅋㅋㅋㅋ 따라치기만 하면 재미 없어서~~ 에코 클라이언트 소스  tc.c 파일 에코 서버 소스가 된다.  t.c 파일 아직 코드분석은 끝나지 않았는데... 자세히 보면 exit(0)부분을 주석 처리 하였다 이유는 컴파일시 에러는 아닌데 자꾸 waring이 뜨는데 보기 싫어서 주석처리로 해결...... 사실 scanf()함수도 컴파일시 waring은 떴었지만 ㅋㅋㅋㅋ 이렇게 소스를 짰으니 컴파일 후 서버를 실행시켜서 클라이언트로 접속을.... 해봐야지~~ 컴파일을 완료하였다 컴파일시 gcc -o echo_client t.c,  gcc -o echo_client tc.c fh 컴파일 하였는데  -o는 컴파일후 실행파일의 이름을 지어주는것이다.  gcc tc.c 이런식으로 하면 무조검 a.out로 되기때문에 여러개를 컴파일 할 수가 없게 된다. 그리고 에코 클라이언트, 에코 서버 2개의 터미널 창을 띄어야 하므로 startx를 쳐서 GUI모드로 가서 실행을~ 클라이언트가 접속할 수 있게끔 서버를 연다 3500포트를 열어준것이다. 그럼 이제 클라이언트로 접속을 하자 클라이언트에서 서버에 접속을 하는순간 서버 터미널 창에서는 접속한 ip주소가 뜨게 된다  루프백 주소를 사용하여 구현을 하였기 때문에 루프백 주소인 127.0.0.1이 뜨게 된다 클라이언트에서 Hellow World를 입력하자 서버는 그것을 다시 클라이언트에세 되 돌려준것이다. 하 socket함수랑 bind함수만 좀 공부하고 그냥 바로 예제 코

TCP/IP소켓 프로그래밍 Backtrack을 올렸다.....

우분투로 하다가 우분투 기반의 리눅스 버전인 백트랙을 올렸다.. 백트랙에서는 CUI와 GUI 둘다 지원이 되서 그런지 vi를 사용할 때는 backtrack이 더 편한것 같다 일단 상단에 vmware바가 화면을 가리지 않아서 좋다.    처음 부팅시 위 사진의 화면으로 부팅이 된다. 저기서 로그인을 한뒤에 startx를 쳐주면 아래사진처럼 이동하게 된다.  그리고 로그아웃을 하면 다시 위 사진 처럼 전환이 된다.. vi를 할 때는 위 사진 같이 cui 모드에서 하는것이 좀더 편해서(터미널은 뭔가에 갇혀있는 듯한 느낌이랄까?) 백트랙을 올렸다 우분투에서도 있는지는 잘모르겠다.... ㅋㅋㅋ 일단 당분간 이걸로 할듯 그리고 vi에디터가 방향키가 먹혀서 신기.... 우분투에서는 습관적으로 방향키를 누르면 영어가 떠서 좀 짜증났었는데...  근데 방향키보다 hjkl키를 써서 방향전환을 한다면 좀 더 빠른 코딩을 할 수 있을거같기는 하다... 일단 어제 공부를 못했으니 오늘은 열심히 해야겠다...

TCP/IP소켓 프로그래밍 error.....

소켓플그래밍을 공부중입니다.  우선 socket()함수를 이용하여 socket을 생성하였습니다.  그리고 bind()라는 함수를 이용하여 소켓의 속성. 즉, 소켓의 Ip주소, Port번호를 부여를 해줍니다.  서버 같은 경우는 어떤 클라이언트 포트와 연결을 할지 기다리게 되고 클라이언트 같은 경우에는 연결할 서버의 포트 번호가 된다. 책에 나온 예제를 보면서 열심히 따라? 침......(예제 소스가 아니라 부분부분으로 나눠서 설명되있는 것을 하나로 묶어서 침) 두둥.... 과연 컴파일 결과는... 에러야 안녕!! 내가 널 없애주마!!!! 수많은 에러 발생 하하 기분이 좋다.  신이시여 저에게 에러를 주셔서 감사합니다.....  이제 열심히 에러를 찾아봅시다. 대충보면 대부분이 선언이 되지 않아 생긴 에러인듯 싶다..... 분명 책에는 선언해준게 없었는데 열심히 찾아봐야겠다....

node.js post요청 매개변수 추출

1 app.use(express.bodyParser()); cs 포스트 요청시 매개변수를 추출하려면 bodyParser()미들웨어를 설정을 해야한다. 이걸안해서 계속 값이 안넘어 갔구나 하하 만약에 쿠키값을 추출하려고 하면  1 app.use(express.cookieParser()); cs 요래해주면 됨     값이 정상적으로 넘어간다. 흠... 근데 값은 넘어가는데 값 비교가 자꾸 false가 되네 ㅋㅋㅋㅋ iamgood하면 정답이 떠야하는데 씁... ㅋㅋㅋㅋㅋㅋㅋㅋ