location

현재 문서에 대한 URL 정보를 가지고 있는 객체

  • 프로퍼티

    • hash 책갈피 이름을 지정한다.
    • host : URL과 호스트 이름포트 번호를 지정한다.
    • hostname : URL과 호스트 이름을 지정한다.
    • href : URL을 지정한다.
    • pathname : 링크의 경로를 지정한다.
    • port 포트 번호를 지정한다.
    • protocol 프로토콜 종류를 지정한다.
    • search 검색 엔진을 호출한다.
  • 메서드

    • reload()
      문서를 다시 읽어온다.
    • replace()
      현재 문서를 다른 URL의 문서로 바꾼다.

document

웹 문서마다 하나씩 만들어지는 객체로 <body> 태그에 의해 만들어진다. HTML 문서에 대한 정보를 가지고 있다.

  • 프로퍼티

    • anchors 책갈피를 지정한다.
    • applets 웹 문서 안의 자바 애플릿을 참조한다.
    • bgColor 웹 문서의 배경색을 지정한다.
    • cookies 쿠키값을 저장한다.
    • domain 현재 서버의 도메인을 지정한다.
    • embeds 플러그인을 설정한다.
    • fgColor 글자색을 지정한다.
    • forms 폼을 지정한다.
    • images 이미지를 지정한다.
    • layers 레이어를 지정한다.
    • lastModified 웹 문서의 최종 수정일을 지정한다.
    • links 링크를 지정한다.
    • location 현재 문서의 주소를 지정한다.
    • referrer 현재 문서를 호출한 페이지의 주소를 지정한다.
    • title 현재 문서의 제목을 지정한다.
    • URL 현재 문서의 주소를 저장한다.
  • 메서드

    • clear()
      문서 안의 내용을 깨끗이 지운다.
    • close()
      open() 메서드를 통해 기록하기 시작한 문서의 기록을 종료한다.
    • open()
      문서에 무엇인가를 기록하기 시작한다.
    • write()
      문서에 내용을 표시한다.
    • writeln()
      문서에 내용을 표시하되 메서드를 적용할 때마다 새로운 줄에 표시한다.

history

현재 창에서 사용자의 방문 기록을 저장하고 있는 객체

  • 프로퍼티

    history 객체에는 방문했던 URL 주소의 개수를 저장하는 length 프로퍼티가 있다그런데 이 프로퍼티값은 익스플로러에서는 0부터 시작하고 넷스케이프나 파이어폭스에서는 1부터 시작하기 때문에 익스플로러에서는 history.length 값에 1을 더해야 URL주소의 개수가 된다.
  • 메서드 

    history 객체가 방문했던 URL 정보를 저장하기 때문에 이 객체에서는 사용할 수 있는 메서드는 방문했던 URL을 앞뒤로 이동하는 것이다
    • back()
      브라우저 창의 <뒤로버튼을 누른 것처럼 히스토리에서 한 단계 뒤로 이동한다.
    • forward()
      브라우저 창의 <앞으로버튼을 누른 것처럼 히스토리에서 한 단계 앞으로 이동한다.
    • go()
      한 단계씩만 앞으로 오갈 수 있는 back() 메서드나 forward() 메서드와 달리 괄호 안에 지정한 숫자만큼 앞뒤로 옮길 수 있다.



블로그 이미지

왕왕왕왕

,

window

브라우저 창이 열릴 때 마다 하나씩 만들어지는 객체, 브라우저 창 안에 존재하는 모든 요소의 최상위 객체.

  • classes : 문서 안에 삽입된 class들의 정보를 저장한다.
  • closed : 브라우저 창이 닫혔는지 나타낸다.
  • defaultStatus : 상태 표시줄의 기본값을 지정한다.
  • document : 현재 윈도우의 document 객체를 반환한다.
  • frames : 윈도우에 있는 history 객체를 반환한다.
  • length : 부모 창의 프레임 개수를 지정한다.
  • location : 현재 창의 location 객체를 반환한다.
  • name : 창의 이름을 지정한다.
  • opener : 새 창에 열어준 부모 창을 선택한다.
  • parent : 부모 창을 선택한다.
  • self : 현재 창을 선택한다.
  • status : 브라우저 창의 상태 표시줄을 선택한다.
  • top : 최상위 창을 선택한다.
  • 메서드

    • open() 메서드 : 새 브라우저 창 열기
      window.open("팝업 창에 표시할 파일명", "창이름", "창의 스타일")
      window.open("popup1.htm", "pop", "scrollbars=no, location=yes, status")

      세 번째 매게변수에서 사용할 수 있는 옵션
      • directories : 연결 표시줄의 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • width : 팝업 창의 너비(가로길이)를 지정한다. (픽셀값)
      • left : 팝업 창의 왼쪽 좌표를 지정한다. (픽셀값)
      • location : 주소 표시줄의 줄 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • menubar : 메뉴바의 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • resizable : 화면 크기 조절 가능 여부를 지정한다. (yes/no, 또는 1/0)
      • scrollbars : 스크롤의 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • status : 상태 표시줄의 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • toolbar : 도구모음의 표시 여부를 지정한다. (yes/no, 또는 1/0)
      • top : 팝업 창의 상단 좌표를 지정한다. (픽셀값)
      • height : 팝업창의 높이(세로 길이)를 지정한다. (픽셀값)
    • close() 메서드 : 브라우저 창 닫기
      window.close()
      <a href="#" onClick="javascript:window.close()">창 닫기</a>
      <a href="javascript:window.close()">창 닫기</a>
    • moveBy() / moveTo() 메서드 : 창 위치 조절하기
      window.moveBy(가로 이동 거리, 세로 이동 거리)
      window.movtTo(가로 이동 거리, 세로 이동거리)
    • resizeBy() / resizeTo() 메서드 : 창 크기 조절하기
      window.resizeBy(창 너비, 창 높이)
      window.resizeTo(창 너비, 창 높이)
    • setTimeout() / clearTimeout() 메서드 : 시간과 관련된 동작 지정하기
      timerID = setTimeout(함수나 명령, 시간)
      clearTimeout(timerID)

navigator

현재 사용하는 브라우저에 대한 정보를 가지고 있는 객체.

  • 프로퍼티

    navigator 객체의 프로퍼티는 몇 가지를 제외하면 익스플로러와 넷스케이프 양쪽 모두에서 사용할 수 있다다음은 navigator 객체의 프로퍼티이다.
    • appCodeName : 브라우저의 코드명을 표시한다.
    • appName : 브라우저의 종류를 표시한다.
    • appVersion : 브라우저의 버전을 표시한다.
    • platform 사용하고 있는 운영체제의 시스템 환경을 표시한다.
    • userAgent 브라우저의 정보를 표시한다.
  • 메서드

    • javaEnabled() : 자바를 지원하는지 확인하는 메서드로반환값은 true(자바 지원) false(자바 지원 안 함)이다.
    • taintEnabled() : 브라우저가 손상되었는지 확인하는 메서드로반환값은 true(브라우저 고장) false(브라우저 정상)이다.

frame

프레임마다 하나씩 만들어지는 객체로 <frame> 태그마다 하나씩 만들어진다.

 



블로그 이미지

왕왕왕왕

,

변수선언

동일한 var 키워드를 이용해 여러 개의 변수를 선언 할 수 있으며, 변수를 선언함과 동시에 초기화할 수도 있다.


var 변수이름 = 초깃값;

변수이름 = 초깃값;


var x;

var y = 10;

var a, b, c;

var i = 10, j = 10, k = 10;


초기값이 지정하지않으면 초기값은 undefined가 된다.



자바스크립트 변수는 어떤 자료형의 값도 담을 수 있으며 한 변수를 다른 타입의 값으로 할당 할 수 있다.


var id = 10;

id = "ten";

출력결과 ten



var 키워드 없이 변수를 선언하면 자동으로 전역 변수가 된다

블로그 이미지

왕왕왕왕

,

내부스크립트


<script language = "javascript">

<!--

스크립트를 작성하는 부분

//-->

</script>


<!-- --> 스크립트에서 주석으로 시작한 이유는 웹브라우저가 내부코드를 화면에 출력하는것을 막기 위함이다.


마지막 부분의 //--> '//'이유는  자바스크립트가 '-->' 를 자바스크립트의 코드로 해석하는 거을 막기 위해서 주석으로 처리 한것이다.




외부스크립트


<script language = "javascript" src = "파일이름.js"></script>




블로그 이미지

왕왕왕왕

,

웹색상표

JAVA/CSS 2014. 9. 4. 13:45

 

93DAFF #98DFFF #9DE4FF #A2E9FF #A7EEFF #ACF3FF #B0F7FF #B4FBFF #B9FFFF

#C0FFFF

#87CEFA #91D8FA #A5D8FA #AFDDFA #B9E2FA #C3E7FA #CDECFA #D7F1FA #E1F6FA

#EBFBFF

#00BFFF #0AC9FF #14D3FF #1EDDFF #28E7FF #32F1FF #3CFBFF #46FFFF #96FFFF

#C8FFFF

#00A5FF #00AFFF #00B9FF #00C3FF #00CDFF #00D7FF #00E1FF #00EBFF #00F5FF

#00FFFF

#1EA4FF #28AEFF #32B8FF #3CC2FF #46CCFF #50D6FF #5AE0FF #6EE0FF #6EEAFF

#78F3FF

#1E90FF #289AFF #32A4FF #3CAEFF #46B8FF #50C2FF #5ACCFF #64D6FF #6EE0FF

#78EAFF

#96A5FF #A0AFFF #AAB9FF #B4C3FF #BECDFF #C8D7FF #D2E1FF #DCEBFF #E8F5FF

#F4FFFF

#86A5FF #90AFFF #9AB9FF #A4C3FF #AECDFF #B8D7FF #CCE1FF #E0EBFF #EBF5FF

#F9FFFF

#6495ED #6E9FED #78A9ED #82B3ED #8CBDED #96C7ED #A0D1F7 #AADBFF #B4E5FF

#BEEFFF

#0078FF #0A82FF #148CFF #1E96FF #28A0FF #32AAFF #3CB4FF #46BEFF #50C8FF

#5AD2FF

#0064FF #0A6EFF #1478FF #1E82FF #288CFF #3296FF #3CA0FF #46AAFF #50B4FF

#5ABEFF

#0000FF #3232FF #5050FF #646EFF #6478FF #6482FF #648CFF #6496FF #64A0FF

#64AAFF

#4169E1 #4B73E1 #557DE1 #5F87E1 #6991E1 #739BE1 #7DA5E1 #87AFEB #91B9F5

#9BC3FF

#0064CD #0A6ECD #1478CD #1E82CD #288CD2 #3296D7 #3CA0E1 #46AAEB #50B4F5

#5ABEF5

#5A5AFF #6464FF #6E6EFF #7878FF #8282FF #8C8CFF #A0A0FF #B4B4FF #C8C8FF

#D2D2FF

#7B68EE #8572EE #8F7CEE #9986EE #A390EE #AD9AEE #B7A4EE #C1AEEE #CBB8EE

#D5C2EE

#6A5ACD #7E6ECD #8878CD #9282CD #9C8CCD #A696CD #B0A0CD #BAAAD7 #C4B4E1

#CEBEE1

#0000CD #2828CD #4646CD #6464CD #6E6ED7 #7878E1 #8282EB #8C8CF5 #9696FF

#A0A0FF

#00008C #14148C #28288C #3C3C8C #50508C #646496 #7878AA #8C8CBE #A0A0C8

#B4B4DC

#483D8B #52478B #5C518B #665B8B #70658B #7A6F95 #84799F #8E83A9 #988DB3

#A297BD

#000069 #1E3269 #323C73 #3C467D #3C5087 #3C5A91 #46649B #506EA5 #5A78AF

#6482B9


#3DFF92 #47FF9C #51FFA6 #5BFFB0 #65FFBA #6FFFC4 #79FFCE #75FFCA #7AFFCF #7FFFD4
#55EE94 #5FEE9E #69EEA8 #73EEB2 #7DEEBC #87EEC6 #91F8D0 #9BFFDA #A5FFE4 #AFFFEE
#66CDAA #70D2B4 #7AD7BE #84DCC8 #8EE1D2 #98EBDC #9DF0E1 #A2F5E6 #A7FAEB #ACFFEF
#AAEBAA #B4F0B4 #BEF5BE #C8FAC8 #D2FFD2 #DCFFDC #E1FFE1 #E6FFE6 #EBFFEB #F0FFF0
#80E12A #8AE634 #94EB3E #9EF048 #A8F552 #B2FA5C #BCFF66 #C1FF6B #C6FF70 #CBFF75
#52E252 #5CE75C #66EC66 #70F170 #7AF67A #84FB84 #89FB89 #8EFB8E #93FB93 #98FB98
#64CD3C #6ED746 #78E150 #82EB5A #8CF064 #96F56E #9BFA73 #A0FA78 #A5FA7D #AAFA82
#13C7A3 #18CCA8 #1DD1AD #22D6B2 #27DBB7 #2CE0BC #31E0C1 #36E0C6 #3BE0CB #40E0D0
#46B4B4 #50BEBE #5AC8C8 #64D2D2 #6EDCDC #73E1E1 #78E6E6 #7DEBEB #82F0F0 #87F5F5
#20B2AA #2ABCB4 #34C6BE #3ED0C8 #48DAD2 #52E4DC #57E9E1 #5CEEE6 #61F3EB #66F8F0
#5F9EA0 #69A8AA #73B2B4 #7DBCBE #87C6C8 #91D0D2 #96D5D7 #9BDADC #A0DFE1 #A5E3E6
#3CB371 #46BD7B #50C785 #5AD18F #64DB99 #6EE5A3 #73EAA8 #78EFAD #7DF4B2 #82F9B7
#2E8B57 #389561 #429F6B #4CA975 #56B37F #60BD89 #65C28E #6AC793 #6FCC98 #74D19D
#228B22 #2C952C #369F36 #40A940 #4AB34A #54BD54 #5EC75E #63CC63 #68D168 #6DD66D
#497649 #538053 #5D8A5D #679467 #719E71 #7BA87B #80AD80 #85B285 #8AB78A #8FBC8F
#006400 #0A6E0A #147814 #1E821E #288C28 #329632 #3CA03C #41A541 #46AA46 #4BAF4B
#008C8C #0A9696 #14A0A0 #1EAAAA #28B4B4 #32BEBE #37C3C3 #3CC8C8 #41CDCD #46D2D2
#008080 #0A8A8A #149494 #1E9E9E #28A8A8 #32B2B2 #37B7B7 #3CBCBC #41C1C1 #46C6C6

#FFB6C1 #FFBBC6 #FFC0CB #FFC5D0 #FFCAD5 #FFCFDA #FFD4DF #FFD9E4 #FFDEE9 #FFE3EE
#FFAAAF #FFB4B9 #FFBEC3 #FFC8CD #FFD2D7 #FFDCE1 #FFE1E6 #FFE6EB #FFEBF0 #FFF0F5
#FF9E9B #FFA8A5 #FFB2AF #FFBCB9 #FFC6C3 #FFD0CD #FFD5D2 #FFDAD7 #FFDFDC #FFE4E1
#FF7A85 #FF848F #FF8E99 #FF98A3 #FFA2AD #FFACB7 #FFB1BC #FFB6C1 #FFBBC6 #FFC0CB
#FF5675 #FF607F #FF6A89 #FF7493 #FF7E9D #FF88A7 #FF92B1 #FF9CBB #FFA6C5 #FFB0CF
#FF82FF #FF8CFF #FF96FF #FFA0FF #FFAAFF #FFB4FF #FFBEFF #FFC8FF #FFD2FF #FFDCFF
#FF7DB4 #FF87BE #FF91C8 #FF9BD2 #FFA5DC #FFAFE6 #FFB4EB #FFB9F0 #FFBEF5 #FFC3FA
#FF69B4 #FF73BE #FF7DC8 #FF87D2 #FF91DC #FF9BE6 #FFA5F0 #FFAAF5 #FFAFFA #FFB4FF
#FF1493 #FF1E9D #FF28A7 #FF32B1 #FF3CBB #FF46C5 #FF50CF #FF5AD9 #FF64E3 #FF6EED
#DB7093 #DB7A9D #DB84A7 #E08EB1 #E598BB #EAA2C5 #EAB1D4 #EFACCF #F4BBDE #F4B6D9
#D7567F #DC6089 #E16A93 #E6749D #EB7EA7 #F088B1 #F592BB #FA9CC5 #FFA6CF #FFB0D9
#C71585 #C71F8F #C73399 #C73DA3 #CC47AD #D151B7 #D65BC1 #E065CB #EA6FD5 #F479DF
#CD1039 #CD1F48 #CD2E57 #CD3861 #CD426B #D24C75 #D7567F #DC6089 #E16A93 #E6749D
#B9062F #B91A4D #BE2457 #C32E61 #C8386B #CD4275 #D24C7F #D75689 #DC6093 #E16A9D

#FAEB78 #FAF082 #FAF58C #FAFA96 #FAFAA0 #FAFAAA #FAFAB4 #FAFABE #FAFAD2 #FAFAD2
#FFDC3C #FFE146 #FFE650 #FFEB5A #FFF064 #FFF56E #FFFA78 #FFFA82 #FFFF8C #FFFF96
#FFC81E #FFD228 #FFD732 #FFDC3C #FFE146 #FFE650 #FFEB5A #FFF064 #FFF56E #FFF978
#FFB400 #FFBE0A #FFC314 #FFC81E #FFCD28 #FFD232 #FFD73C #FFDC46 #FFE150 #FFE65A
#FDCD8C #FDD296 #FDD7A0 #FDDCAA #FDE1B4 #FDE6BE #FDEBC8 #FDF5D2 #FDF5DC #FDF5E6
#FAC87D #FACD87 #FAD291 #FAD79B #FADCA5 #FAE1AF #FAE6B9 #FAEBC3 #FAEBCD #FAEBD7
#FFA500 #FFAF0A #FFB914 #FFC31E #FFCD28 #FFD732 #FFDC37 #FFE13C #FFE641 #FFEB46
#FF9100 #FF9B00 #FFA500 #FFAF00 #FFB900 #FFC300 #FFC800 #FFCD00 #FFD200 #FFD700
#FF8200 #FF8C0A #FF9614 #FFA01E #FFAA28 #FFB432 #FFB937 #FFBE3C #FFC341 #FFC846
#FFA98F #FFB399 #FFBDA3 #FFC7AD #FFD1B7 #FFDBC1 #FFE0C6 #FFE5CB #FFEAD0 #FFEFD5
#FFA374 #FFAD7E #FFB788 #FFC192 #FFCB9C #FFD0A1 #FFD5A6 #FFDAAB #FFDFB0 #FFE4B5
#FF9473 #FF9E7D #FFA887 #FFB291 #FFBC9B #FFC6A5 #FFD0AF #FFD0AF #FFD5B4 #FFDAB9
#FF7F50 #FF895A #FF9364 #FF9D6E #FFA778 #FFB182 #FFBB8C #FFC091 #FFC596 #FFCA9B
#CD853F #CD8F49 #D29953 #D7A35D #DCAD67 #E1B771 #E6C17B #EBC680 #F0CB85 #F5D08A
#D2691E #D27328 #D27D32 #D7873C #DC9146 #E19B50 #E6A55A #EBAA5F #EBAF64 #F0B469
#AE5E1A #B86824 #C2722E #CC7C38 #D68642 #E0904C #E59551 #EA9A56 #EF9F5B #F4A460
#8B4513 #8B4F1D #8B5927 #8B6331 #906D3B #957745 #9F814F #A48654 #A98B59 #AE905E

#FF9696 #FFA0A0 #FFAAAA #FFB4B4 #FFBEBE #FFC8C8 #FFD2D2 #FFDCDC #FFE6E6 #FFF0F0
#F08080 #F08A8A #F09494 #F59E9E #FAA8A8 #FAB2B2 #FAB7B7 #FABCBC #FAC1C1 #FAC6C6
#F56E6E #F57878 #F58282 #F58C8C #F59696 #F5A0A0 #F5AAAA #FAB4B4 #FABEBE #FAC8C8
#F06464 #F06E6E #F07878 #F08282 #F08C8C #F09696 #F4A0A0 #F4AAAA #F4B4B4 #FEBEBE
#FF0000 #FF3232 #FF4646 #FF5050 #FF5A5A #FF6464 #FF6E6E #FF7878 #FF8282 #FF8C8C
#EB0000 #EB3232 #EB4646 #EB5050 #EB5A5A #EB6464 #F06E6E #F57878 #FA8282 #FA8C8C
#CD0000 #CD3C3C #CD4646 #CD5050 #D25A5A #D76464 #DC6E6E #E17878 #E68282 #EB8C8C
#CD5C5C #CD6666 #CD7070 #CD7A7A #D28484 #D78E8E #DC9898 #E6A2A2 #EBACAC #F0B6B6
#B90000 #B93232 #B93C3C #B94646 #B95050 #BE5A5A #C35F5F #C86464 #CD6969 #D26E6E
#B22222 #B24040 #B24A4A #B25454 #B75E5E #BC6868 #C17272 #CB7776 #CB7C7C #D08180
#A52A2A #AA3E3E #AF4848 #B45252 #BE5C5C #C36666 #CD7070 #CD7A7A #D28484 #D78E8E
#800000 #803232 #853C3C #8F4646 #945050 #9E5A5A #A36464 #AD6E6E #B77878 #C18282

#CD853F #CD8B45 #CD904A #D2954F #D29A54 #D79F59 #D7A45E #E1A963 #E1AE68 #E6B36D
#DB631F #E56D29 #E57733 #EA813D #EF8B47 #EF904C #F49551 #F49A56 #F49F5B #F4A460
#D2691E #D27328 #D77D32 #D7873C #DC9146 #E19B50 #E6A055 #EBA55A #F0AA5F #F5AF64
#A0522D #A05C37 #A06641 #A5704B #AA7A55 #B4845F #B98E69 #C39873 #CDA27D #D7AC87
#8B4513 #8B4F1D #8B5927 #8B6331 #906D3B #9A7745 #A4814F #AE8B59 #B89563 #C29F6D
#DA70D6 #DF75DB #E47AE0 #E97FE5 #EE84EA #F389EF #F88EF4 #FD93F9 #FF98FE #FF9DFF
#BA55D3 #BF5AD8 #C45FDD #C964E2 #CE69E7 #D36EEC #D873F1 #DD78F6 #E27DFB #E782FF
#9932CC #9E37D1 #A33CD6 #A841DB #AD46E0 #B24BE5 #B750EA #BC55EF #C15AF4 #C65FF9
#9400D3 #9905D8 #9E0ADD #A30FE2 #A814E7 #AD19EC #B21EF1 #B723F6 #BC28FB #C12DFF
#942894 #9E329E #A83CA8 #B246B2 #BC50BC #C65AC6 #D064D0 #DA6EDA #E478E4 #EE82EE
#8c008c #960a96 #a014a0 #aa1eaa #b428b4 #be32be #c83cc8 #d246d2 #dc50dc #e65ae6
#800080 #8a0a8a #941494 #9e1e9e #a828a8 #b232b2 #bc3cbc #c646c6 #d050d0 #da5ada
#834683 #8d508d #975a97 #a164a1 #ab6eab #b578b5 #bf82bf #c98cc9 #d396d3 #dda0dd
#828282 #8c8c8c #969696 #a0a0a0 #aaaaaa #b4b4b4 #bebebe #c8c8c8 #d2d2d2 #dcdcdc
#000000 #282828 #323232 #3c3c3c #464646 #505050 #5a5a5a #646464 #6e6e6e #787878

 

블로그 이미지

왕왕왕왕

,

파일열기

데이터를 읽거나 쓰기 위해서 파일을 열때 사용하는 함수이다.

두개의 인자를 전달 받는데, 첫번째 인자로 대상이되는 파일의 이름 및 경로 정보, 두번째 인자로는 파일의 오픈모드정보(파일의 특성 정보)를 전달한다.

 

#include<sys/types.h>

#include<sys/stat.h>

#include<fcntl.h>


1. int open(const char *path, int flag);

path 파일 이름을 나타내는 문자열의 주소 값 전달

flag 파일의 오픈 모드 정보 전달

 성공 시 파일 디스크립터, 실패 시 -1 반환

 


 

 오픈모드

의미 

 O_CREAT 

필요하면 파일을 생성 

 O_TRUNC

기존 데이터 전부 삭제

 O_APPEND

 기존 데이터 보존하고, 뒤에 이어서 저장

 O_RDONLY

 읽기 전용으로 파일 오픈

 O_WRONLY

 쓰기 전용으로 파일 오픈

 O_RDWR

 읽기, 쓰기 겸용으로 파일오픈

 

 

파일닫기

#include<unistd.h>

2. int close(int fd);

fd 닫고자 하는 파일 또는 소켓의 파일 디스크립터 전달

 성공시 0, 실패 시 -1 반환

 


 

파일에 데이터 쓰기

파일에 데이터를 출력(전송)하는 함수이다.

 

#include<unistd.h>

3. ssize_t write(int fd, const void * buf, size_t nbytes);

fd 데이터 전송대상을 나타내는 파일 디스크립터 전달

buf 전송할 데이터가 저장된 버퍼의주소 값 전달

nbytes 전송할 데이터의 바이트 수 전달

성공 시 전달한 바이트 수, 실패시 -1 반환


4. sszie_t read(int fd, void *buf, size_t nbytes);

fd 데이터 수신대상을 나타내는 파일 디스크립터

buf 수신한 데이터를 저장할 버퍼의 주소값 전달

nbytes 수신할 최대 바이트 수 전달

 성공시 수신한 바이트수(단 파일의 끝을 만나면 0), 실패시 -1 반환


 

 

 

블로그 이미지

왕왕왕왕

,
  int   server_socket;
   int   client_socket;
   int   client_addr_size;

   struct sockaddr_in   server_addr;
   struct sockaddr_in   client_addr;

   char   buff_rcv[BUFF_SIZE+5];
   char   buff_snd[BUFF_SIZE+5];




1. int socket(int domain, int type, int protocol);

domain 

  • PF_INET, AF_INET : IPv4인터넷 프로토콜을 사용
  • PF_INET6 : IPv6인터넷 프로토콜을 사용
  • PF_LOCAL, AF_UNIX : 같으 시스템 내에서 프로세스끼리 통신합니다.
  • PF_PACKET : Low level socket 을 인터페이스를 이용
  • PF_IPX : IPX 노벨 프로토콜을 사용
type
  • SOCK_STREAM : TCP/IP 프로토콜을 이용 
  • SOCK_DGRAM : UDP/IP 프로토콜을 이용
protocol : 통신에 있어 특정 프로토콜을 사용을 지정하기 위한 변수 ,보통 0값을 사용

성공 시 파일 디스크립터, 실패 시 -1 반환

 server_socket  = socket( PF_INET, SOCK_STREAM, 0);
   if( -1 == server_socket)
   {
      printf( "server socket 생성 실패\n");
      exit( 1);
   }

 



2. int bind(int sockfd,(struct sockaddr *)&myaddr, socklen_t addrlen);

  • sockfd : 소켓 디스크립터
  • sockaddr *myaddr : 주소 정보로 인터넷을 이용하는 AF_INET인지 시스템 내에서                              통신하는  AF_UNIX에 따라서 달라집니다. 

                                 인터넷을 통해 통신하는 AF_INET인 경우에는 struct sockaddr_in을                                  사용합니다.

  • socklen_t addrlen : myadd 구조체의 크기 ex) size(sock_addr)

성공 시 0 , 실패 시 -1 반환

 if( -1 == bind( server_socket, (struct sockaddr*)&server_addr, sizeof( server_addr) ) )
   {
      printf( "bind() 실행 에러\n");
      exit( 1);
   }

주소정보의 표현 (sockaddr/ sockaddr_in)

  • sockaddr : 소켓주소를 표현하는 구조체 
TCP/IP만을 목적으로 만들어진 것이 아니기 때문에, 다양한 주소체계에 맞게 범용 목적으로 사용하기 위해이런 단순한 구조를 가지고있다.

struct sockaddr{
sa_family_t sa_family ; 소켓 주소체계
char          sa_data[4]; 해당 주소체계에서 사용하는 주소정보

  • sockaddr_in : IPv4 주소체계에서 사용하는 구조체
소켓 프로그램은 범용 주소 구조체로 sockaddr을 사용하지만, 주소체계의 종류에 따라 별도의 전용 구조체를 만들어 사용하는게 편리하다.

struct sockaddr_in {
sin_family_t         sin_family; IPv4주소 체계에서 사용하므로 항상 AF_INET으로 설정
unist16_t             sin_port; 포트번호
struct     in_addr  sin_addr; IP주소를 나타내는 32비트 정수 타입구조체
char                   sin_zero[8]; sockaddr과 같은 크기를 유지하기 위해 필요한                                                     패딩공간. 항상 0

struct in_addr {
unit32_t              s_addr; 32비트 IPv4 인터넷 주소
}


sin_family : 주소체계(AF_INET / AF_INET6 / AF_LOCAL)

sin_port : 16비트 포트정보

sin_addr : 32비트 IP정보

sin_zero : 사용되지 않는 필드








3. int listen(int sockfd, int backlog);

  • sockfd : 소켓 디스크립터
  • backlog : 대기 메시지 큐의 개수

성공시 0, 실패 시 -1 반환

  if( -1 == listen(server_socket, 5))
   {
      printf( "listen() 실행 실패\n");
      exit( 1);
   }


 

4. int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

  • sockfd : 소켓 디스크립터
  • sockaddr *addr : 클라이언트 주소정보를 가지고 있는 포인터
  • socklen_t addrlen : struct sockaddr *addr 포인터가 가르키는 구조체의 크기

성공 시 파일 디스크립터, 실패 시 -1 반환

while( 1) { client_addr_size = sizeof( client_addr); client_socket = accept( server_socket, (struct sockaddr*)&client_addr, &client_addr_size); if ( -1 == client_socket) { printf( "클라이언트 연결 수락 실패\n"); exit( 1); }

 



5. int connect(int sockfd,struct sockaddr * serv_addr, socklen_t addrlen);

  • sockfd : 소켓 디스크립터
  • sockaddr *serv_addr : 서버 주소 정보에 대한 포인터
  • socklen_t addrlen : struct sockaddr *serv_addr 포인터 가르키는 구조체의 크기

성공시 0, 실패 시 -1 반환

  if( -1 == connect( client_socket, (struct sockaddr*)&server_addr, sizeof( server_addr) ) )
   {
      printf( "접속 실패\n");
      exit( 1);
   }

 

 


TCP/IP 통신 함수 사용순서




서버프로그램 예제

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>

#define  BUFF_SIZE   1024

int   main( void)
{
   int   server_socket;
   int   client_socket;
   int   client_addr_size;

   struct sockaddr_in   server_addr;
   struct sockaddr_in   client_addr;

   char   buff_rcv[BUFF_SIZE+5];
   char   buff_snd[BUFF_SIZE+5];



   server_socket  = socket( PF_INET, SOCK_STREAM, 0);
   if( -1 == server_socket)
   {
      printf( "server socket 생성 실패\n");
      exit( 1);
   }

   memset( &server_addr, 0, sizeof( server_addr));
   server_addr.sin_family     = AF_INET;
   server_addr.sin_port       = htons( 4000);
   server_addr.sin_addr.s_addr= htonl( INADDR_ANY);

   if( -1 == bind( server_socket, (struct sockaddr*)&server_addr, sizeof( server_addr) ) )
   {
      printf( "bind() 실행 에러\n");
      exit( 1);
   }

   if( -1 == listen(server_socket, 5))
   {
      printf( "listen() 실행 실패\n");
      exit( 1);
   }

   while( 1)
   {
      client_addr_size  = sizeof( client_addr);
      client_socket     = accept( server_socket, (struct sockaddr*)&client_addr, &client_addr_size);

      if ( -1 == client_socket)
      {
         printf( "클라이언트 연결 수락 실패\n");
         exit( 1);
      }

      read ( client_socket, buff_rcv, BUFF_SIZE);
      printf( "receive: %s\n", buff_rcv);
      
      sprintf( buff_snd, "%d : %s", strlen( buff_rcv), buff_rcv);
      write( client_socket, buff_snd, strlen( buff_snd)+1);          // +1: NULL까지 포함해서 전송
      close( client_socket);
   }
}

 클라이언트 프로그램 예제

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>

#define  BUFF_SIZE   1024

int   main( int argc, char **argv)
{
   int   client_socket;

   struct sockaddr_in   server_addr;

   char   buff[BUFF_SIZE+5];

   client_socket  = socket( PF_INET, SOCK_STREAM, 0);
   if( -1 == client_socket)
   {
      printf( "socket 생성 실패\n");
      exit( 1);
   }

   memset( &server_addr, 0, sizeof( server_addr));
   server_addr.sin_family     = AF_INET;
   server_addr.sin_port       = htons( 4000);
   server_addr.sin_addr.s_addr= inet_addr( "127.0.0.1");

   if( -1 == connect( client_socket, (struct sockaddr*)&server_addr, sizeof( server_addr) ) )
   {
      printf( "접속 실패\n");
      exit( 1);
   }
   write( client_socket, argv[1], strlen( argv[1])+1);      // +1: NULL까지 포함해서 전송
   read ( client_socket, buff, BUFF_SIZE);
   printf( "%s\n", buff);
   close( client_socket);
   
   return 0;
}


블로그 이미지

왕왕왕왕

,

 

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

위에 주소로 들어가서 pscp.exe를 다운받는다.

 

 

cmd로 pscp가 설치된 경로로 들어가서

 

pscp 보낼파일경로 상대방서버이름@상대방서버아이피:/전송할 경로

 

putty나 pscp나 설치할게없어서 다운받으면 그자리가 설치경로로 이해하면 된다.

블로그 이미지

왕왕왕왕

,