객체소켓
네트워크 소켓 객체
소켓이 속한 곳net모듈, 생성 방법
1var s = new net.Socket();
상속관계
건설자
Socket
소켓 생성자, 새 소켓 객체 생성
1new Socket(Integer family = net.AF_INET);
호출 매개변수:
- family: 정수, 주소 세트를 지정합니다. 기본값은 AF_INET, ipv4입니다.
구성원 속성
family
정수, 현재 소켓 객체의 주소 집합을 쿼리합니다.
1readonly Integer Socket.family;
remoteAddress
문자열, 현재 연결의 상대방 주소를 쿼리합니다.
1readonly String Socket.remoteAddress;
remotePort
정수, 현재 연결된 피어 포트를 쿼리합니다.
1readonly Integer Socket.remotePort;
localAddress
문자열, 현재 연결의 로컬 주소를 쿼리합니다.
1readonly String Socket.localAddress;
localPort
정수, 현재 연결의 로컬 포트를 쿼리합니다.
1readonly Integer Socket.localPort;
timeout
정수, 쿼리 및 설정 시간 초과 단위 밀리초
1Integer Socket.timeout;
fd
정수, 쿼리Stream서브클래스에 의해 구현된 해당 파일 설명자 값
1readonly Integer Socket.fd;
멤버 함수
connect
TCP 연결 설정
1
2
3Socket.connect(String host,
Integer port,
Integer timeout = 0) async;
호출 매개변수:
- host: 문자열, 상대방의 주소 또는 호스트 이름을 지정하거나 Unix 소켓 및 Windows 파이프 경로를 가리킬 수 있습니다.
- port: 정수, 상대방의 포트를 지정하며, 유닉스 소켓과 윈도우 파이프 연결 시 이 매개변수는 0이어야 한다.
- timeout: 정수, 시간 제한을 지정합니다. 단위는 밀리초이며 기본값은 0입니다.
bind
현재 소켓을 모든 로컬 주소의 지정된 포트에 바인딩합니다.
1
2Socket.bind(Integer port,
Boolean allowIPv4 = true);
호출 매개변수:
- port: 정수, 바인딩된 포트를 지정합니다.
- allowIPv4: 부울, ipv4 연결 허용 여부를 지정합니다. 기본값은 true입니다. 이 매개변수는 ipv6에 유효하며 운영 체제에 따라 다릅니다.
현재 소켓을 지정된 주소의 지정된 포트에 바인딩합니다.
1
2
3Socket.bind(String addr,
Integer port = 0,
Boolean allowIPv4 = true);
호출 매개변수:
- addr: 문자열, 바인딩 주소를 지정하고 Unix 소켓 및 Windows 파이프 경로를 가리킬 수도 있습니다.
- port: 정수, 바인딩된 포트를 지정합니다. 이 매개변수는 Unix 소켓과 Windows 파이프를 바인딩할 때 무시됩니다.
- allowIPv4: 부울, ipv4 연결 허용 여부를 지정합니다. 기본값은 true입니다. 이 매개변수는 ipv6에 유효하며 운영 체제에 따라 다릅니다.
listen
연결 요청 듣기 시작
1Socket.listen(Integer backlog = 120);
호출 매개변수:
- backlog: 정수, 요청 대기열 길이를 지정합니다. 제한을 초과하는 요청은 거부됩니다. 기본값은 120입니다.
accept
연결을 기다렸다가 수락하세요.
1Socket Socket.accept() async;
결과 반환:
- Socket, 수신된 연결 객체를 반환합니다.
recv
연결에서 지정된 크기의 데이터를 읽습니다.read 메소드와 달리, recv는 필요한 데이터를 읽었음을 보장하지 않으며, 데이터를 읽은 후 즉시 반환합니다.
1Buffer Socket.recv(Integer bytes = -1) async;
호출 매개변수:
- bytes: 정수, 읽을 데이터의 양을 지정합니다. 기본적으로 모든 크기의 데이터를 읽습니다.
결과 반환:
- Buffer, 연결에서 읽은 데이터를 반환합니다.
send
주어진 데이터를 연결에 씁니다. 이 방법은 쓰기 방법과 동일합니다.
1Socket.send(Buffer data) async;
호출 매개변수:
- data:Buffer, 기록할 데이터가 주어지면
read
스트림에서 지정된 크기의 데이터를 읽습니다.
1Buffer Socket.read(Integer bytes = -1) async;
호출 매개변수:
- bytes: 정수, 읽을 데이터의 양을 지정합니다. 기본값은 임의 크기의 데이터 블록을 읽는 것입니다. 읽는 데이터의 크기는 장치에 따라 다릅니다.
결과 반환:
- Buffer, 스트림에서 읽은 데이터를 반환하며, 읽을 데이터가 없거나 연결이 중단된 경우 null이 반환됩니다.
write
주어진 데이터를 스트림에 쓰기
1Socket.write(Buffer data) async;
호출 매개변수:
- data:Buffer, 기록할 데이터가 주어지면
flush
파일 버퍼 내용을 물리적 장치에 쓰기
1Socket.flush() async;
close
현재 스트림 개체를 닫습니다.
1Socket.close() async;
copyTo
스트림 데이터를 대상 스트림에 복사
1
2Long Socket.copyTo(Stream stm,
Long bytes = -1) async;
호출 매개변수:
- stm:Stream, 대상 스트림 객체
- bytes: Long, 복사된 바이트 수
결과 반환:
- Long, 복사된 바이트 수를 반환합니다.
toString
객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.
1String Socket.toString();
결과 반환:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.
1Value Socket.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용되지 않음
결과 반환:
- Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.