인터넷 모듈을 Node.js를
인터넷 모듈을 Node.js를
인터넷 모듈은 클라이언트 / 서버 방식의 생성을 포함하는 내부 네트워크 통신 기기의 숫자를 제공 Node.js를, 우리는 다음과 같은 방법으로 모듈로 도입 될 수있다 :
var net = require("net")
방법
아니오. | 방법 및 설명 |
---|---|
(1) | net.createServer ([옵션] [connectionListener ]) TCP 서버를 작성합니다. 자동으로 '연결'이벤트에 ConnectionListener 매개 변수는 리스너를 만들었습니다. |
이 | net.connect (옵션 [, connectionListener]) 그것은 새로운 'net.Socket'를 반환하고, 지정된 주소와 포트에 연결합니다. 소켓이 확립되면, 상기 '접속'이벤트를 트리거 할 것이다. |
3 | net.createConnection (옵션 [, connectionListener]) 포트 TCP 연결을 호스트와 호스트 포트를 만듭니다. 'localhost를'디폴트를 개최. |
4 | net.connect (포트 [호스트] [ , connectListener]) 호스트 포트 및 호스트 TCP 연결을위한 포트를 만듭니다. 'localhost를'디폴트를 개최. 매개 변수 connectListener은 '연결'이벤트에 대한 리스너로 추가합니다. 뒤로 'net.Socket'. |
(5) | net.createConnection (포트 [호스트] [ , connectListener]) 호스트 포트 및 호스트 TCP 연결을위한 포트를 만듭니다. 'localhost를'디폴트를 개최. 매개 변수 connectListener은 '연결'이벤트에 대한 리스너로 추가합니다. 뒤로 'net.Socket'. |
6 | net.connect (경로 [, connectListener]) 유닉스 소켓의 경로에 대한 연결을 만듭니다. 리스너로 ConnectListener 매개 변수는 '연결'이벤트에 추가됩니다. 뒤로 'net.Socket'. |
(7) | net.createConnection (경로 [, connectListener]) 유닉스 소켓의 경로에 대한 연결을 만듭니다. 매개 변수 connectListener은 '연결'이벤트에 대한 리스너로 추가합니다. 뒤로 'net.Socket'. |
8 | net.isIP (입력) 입력 된 IP 주소가 있는지 여부를 검출하는 단계를 포함하는 방법. IPV4 리턴 4, IPV6 리턴 (6), 그렇지 않으면 0을 반환합니다. |
9 | net.isIPv4 (입력) 입력 한 주소는 IPV4 인 경우, 그렇지 않은 경우는 false, true를 돌려줍니다. |
(10) | net.isIPv6 (입력) 주소가 IPV6로 입력 한 경우, 그렇지 않은 경우는 false, true를 돌려줍니다. |
net.Server
net.Server은 종종 TCP 또는 로컬 서버를 작성하는 데 사용됩니다.
아니오. | 방법 및 설명 |
---|---|
(1) | server.listen (포트 [호스트] [ , 백 로그] [콜백]) 지정된 포트 및 호스트 포트 호스트 교류 연결에 듣기. 기본적으로 호스트는 IPv4 주소 (INADDR_ANY) 직접 연결을 받아들입니다. 포트 포트는 임의 포트를 할당되며, 0이다. |
이 | server.listen (경로 [콜백]) 연결의 경로를 지정, 로컬 소켓 서버를 시작합니다. |
3 | server.listen (처리 [콜백]) 핸들을 지정하여 연결합니다. |
4 | server.listen (옵션 [콜백]) 옵션 속성 : 포트 포트, 호스트 호스트 및 백 로그뿐만 아니라 선택적 매개 변수 콜백 함수를, 그들이 함께 (포트, [호스트], [백 로그], [콜백]) server.listen 호출. 또한, 경로 파라미터는 UNIX 소켓을 지정하는데 사용될 수있다. |
(5) | server.close ([콜백]) 서버는 기존 연결을 새로운 연결을 수락하고 유지 중지합니다. 이것은 모든 연결 엔드 서버가 종료됩니다, 그리고 '가까이'이벤트를 트리거 비동기 기능입니다. |
6 | server.address () 운영 체제는 어드레스 바인딩 프로토콜 패밀리 이름 및 서버 포트를 반환한다. |
(7) | server.unref () 이 서버의 시스템 이벤트 인 경우 하나의 활성 통화 unref 프로그램이 종료 할 수 있습니다. |
8 | server.ref () 이 유일한 서버 인 경우 그리고 unref 반대로, 프로그램이 종료 (기본 동작)을 허용하지 않습니다 서버에 unref되기 전에 심판을 호출합니다. 서버가 심판 되었으면 REF 다시 호출되고 영향을 줄 수 없다. |
9 | server.getConnections (콜백) 비동기는 현재 서버의 수 활성 연결을 가져옵니다. 소켓이 유효 후 자식 프로세스로 전송되면, 콜백 함수 두 개의 인수가 잘못하고 계산이있다. |
행사
아니오. | 이벤트 및 설명 |
---|---|
(1) | 청취 때 서버 호출이 결합 트리거를 server.listen. |
이 | 연결 새 연결이 생성 될 때 트리거됩니다. 소켓은 net.Socket 인스턴스입니다. |
3 | 가까운 그것은 서버가 종료 트리거합니다. 연결이있는 경우 모든 연결이 종료 될 때까지,이 이벤트가 트리거되지 않습니다. |
4 | 오류 오류가 발생할 때 트리거된다. '닫기'이벤트는 이벤트 다음 직접 호출됩니다. |
net.Socket
net.Socket 객체는 TCP 소켓 또는 UNIX 추상화이다. 이중 스트림 인터페이스의 실현 net.Socket 예. 이들은 사용 (연결 ()를 사용하여) 사용자 클라이언트에 생성하거나, 상기 노드에 의해 생성 될 때, 연결 서버 이벤트를 통해 사용자에게 전달 될 수있다.
행사
net.Socket 이벤트 :
아니오. | 이벤트 및 설명 |
---|---|
(1) | 조회 이름 후하지만 전에이 이벤트를 트리거에 연결. UNIX의 경우 NA를 sokcet. |
이 | 연결 트리거 성공적 소켓 접속을 확립하는 경우. |
3 | 데이터 데이터가 수신 될 때 발생합니다. |
4 | 끝 때 소켓과 다른 쪽 끝이 이벤트를 트리거 FIN 패킷을 전송하는 방법. |
(5) | 시간 제한 소켓 유휴 시간 제한 만 발생하는 경우 표시 소켓 유휴 상태. 사용자가 수동으로 연결을 종료해야합니다. |
6 | 배수 트리거되면 쓰기 캐시 비어있을 때. 업을 제어하기 위해 사용될 수있다. |
(7) | 오류 오류가 발생할 때 트리거된다. |
8 | 가까운 화재 소켓이 완전히 닫혀 있습니다. Had_error 매개 변수로 인해 여부를 전송 오류 소켓 가까이를 나타내는 부울 값입니다. |
재산
net.Socket는 많은 유용한 특성을 제공, 소켓의 상호 작용을 제어하기 쉬운 :
아니오. | 부동산 및 설명 |
---|---|
(1) | socket.bufferSize 이 속성 바이트 수를 버퍼에 기록 될 나타낸다. |
이 | socket.remoteAddress 원격 예를 들어 IP 주소 문자열 : '74 .125.127.100 '또는'2001 : 4860 : A005 : 68 '. |
3 | socket.remoteFamily 이러한 'IPv4의'또는 'IPv6의'원격 IP 프로토콜 문자열. |
4 | socket.remotePort 예를 들어 원격 포트, 디지털 표현, 80 또는 21. |
(5) | socket.localAddress 연결 문자열의 로컬 IP 주소 직립 원격 클라이언트가 네트워크 접속 다발의 로컬 인터페이스. 사용자가 '0.0.0.0'를 수신하고, 클라이언트는 '192.168.1.1'에 연결되어있는 경우, 예를 들어, 값 '192.168.1.1'이 될 것이다. |
6 | socket.localPort 로컬 포트 주소 번호. 예를 들어 : 80 또는 21. |
(7) | socket.bytesRead 수신 된 바이트 수를 얻을 수 있습니다. |
8 | socket.bytesWritten 바이트 수는 보냈다. |
방법
아니오. | 방법 및 설명 |
---|---|
(1) | 새로운 net.Socket ([옵션]) 우리는 새로운 소켓 객체를 생성. |
이 | 를 Socket.connect (포트 [호스트] [ , connectListener]) 지정 포트 및 호스트 포트 호스트, 소켓 연결을 만들 수 있습니다. 로컬 호스트 매개 변수 기본값을 호스트. 일반적으로 필요 net.createConnection 오픈 소켓을 사용할 수 없습니다. 당신 만이 할 때 자신의 소켓을 달성하는 데 사용됩니다. |
3 | 를 Socket.connect (경로 [, connectListener]) 유닉스 소켓 지정된 경로를 엽니 다. 일반적으로 필요 net.createConnection 오픈 소켓을 사용할 수 없습니다. 당신 만이 할 때 자신의 소켓을 달성하는 데 사용됩니다. |
4 | socket.setEncoding ([인코딩]) 설정 코딩 |
(5) | socket.write (데이터 [인코딩] [ 콜백]) 소켓상에서 데이터를 전송하는 단계를 포함한다. 두 번째 매개 변수는 문자열의 인코딩을 지정, 기본값은 UTF8 인코딩입니다. |
6 | socket.end ([자료] [인코딩 ]) 세미 폐쇄 소켓. 예를 들어, 그것은 FIN 패킷을 전송한다. 서버는 데이터를 송신하는 것이 여전히 가능하다. |
(7) | socket.destroy () 확인이 소켓에 어떤 I / O 활동. 필요한 경우에만 경우 오류가 발생합니다. (프로세싱 에러 등). |
8 | socket.pause () 읽기 데이터를 일시 중지합니다. 즉, 데이터가 이벤트를 트리거하지 않습니다이다. 업로드 제어를 위해 매우 유용합니다. |
9 | socket.resume () 복원 할 데이터를 읽은 후 일시 정지 ()를 호출합니다. |
(10) | socket.setTimeout (타임 아웃 [콜백]) 제한 시간 (밀리 초)보다 더 많은 유휴 소켓은 소켓은 아웃 시간으로 설정됩니다. |
(11) | socket.setNoDelay ([noDelay]) 바가지 (월리) 알고리즘을 사용하지 않습니다. 기본 TCP 연결을 사용 바가지 알고리즘에 의해, 그들은 보내기 전에 데이터를 버퍼링. 전송 데이터는 즉시 noDelay는 통화 socket.write () 시간에 true로 설정합니다. noDelay 기본값은 true입니다. |
(12) | socket.setKeepAlive ([사용], initialDelay의 ]) / 비활성화 긴 링크 기능을 활성화하고, 프로브 소켓에 긴 유휴 연결의 첫 번째를 보내기 전에, 선택적으로 초기 지연을 설정합니다. 기본값은 false입니다. initialDelay의 (밀리 초)을 설정하면 마지막 패킷이 수신 지연과 프로브 사이의 긴 연결을 설정합니다. initialDelay의는 기본 (또는 이전) 값을 떠나, 0으로 설정합니다. 기본값은 0입니다. |
(13) | socket.address () 운영 체제는 어드레스 바인딩 프로토콜 패밀리 이름 및 서버 포트를 반환한다. {: 12346, 가족 '의 IPv4'주소 '127.0.0.1'포트} 반환되는 객체는 다음과 같은 세 가지 특성이 있습니다. |
(14) | socket.unref () 이 서버의 시스템 이벤트 인 경우 하나의 활성 통화 unref 프로그램이 종료 할 수 있습니다. 서버가 unref 된 경우, unref 다시 호출되고 영향이 없습니다. |
(15) | socket.ref () 이 유일한 서버 인 경우 그리고 unref 반대로, 프로그램이 종료 (기본 동작)을 허용하지 않습니다 서버에 unref되기 전에 심판을 호출합니다. 서버가 심판 되었으면 REF 다시 호출되고 영향을 줄 수 없다. |
예
server.js 파일을 만들고 다음과 같이 코드 :
var net = require('net'); var server = net.createServer(function(connection) { console.log('client connected'); connection.on('end', function() { console.log('客户端关闭连接'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); }); server.listen(8080, function() { console.log('server is listening'); });
상기 서버 측 코드의 구현 :
$ node server.js server is listening # 服务已创建并监听 8080 端口
client.js 파일을 생성, 새 창을 열고 다음과 같이 코드 :
var net = require('net'); var client = net.connect({port: 8080}, function() { console.log('连接到服务器!'); }); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('断开与服务器的连接'); });
위의 클라이언트 코드의 구현 :
连接到服务器! Hello World! 断开与服务器的连接