728x90
- 네트워크 클래스 (4/5)
- 네트워크 전송 클래스
- 네트워크 프로그램을 하는 목적 : 아두이노 제어보드에 네트워크에 농업을 자동화하는 방법을 찾기위해 c# 네트워크를 배우는 중이다.
- NetworkStream
- 역할 : TCP 연결에서 데이터 송수신 스트림
- 스트림에서 데이터 쓰기
- public override void Write(
byte[] buffer,
int offset,
int size
)
- 리턴값 : 읽은 바이트 수 , 리턴 값이 0 이면 읽을 데이터가 없음
- NetworkStream.CanRead, NetworkStream.CanWrite
스트림에데이터 읽고 쓸 수 있는지 확인
public override bool CanRead {get; }
public override bool CanWrite {get;}
리턴값 : true , false
- StreamWriter
- 역할
- 문자열의 끝에 종결자 ('\n', '\r\n', '\r')를 붙여 쓰기
- StreamWriter 생성자
- 스트림 설정
public StreamWriter(
Stream stream // networkStream 인스턴스를 여기에 셋업할것
- 종결자와 함께 쓰기
- StreamWriter.WriteLine()
- public virtual void WriteLine ( bool value )
- public virtual void WriteLine ( char value )
- public virtual void WriteLine ( double value )
- public virtual void WriteLine ( int value )
- public virtual void WriteLine ( long value )
- public virtual void WriteLine ( float value )
- public virtual void WriteLine ( string value )
- … 그외에도 다양한 매개변수 형을 지원
- StreamWriter를 해제
- streamWriter.Close()
NetworkStream ns = tcpClient.GetStream();
using ( StreamWriter sw = new StreamWriter(ns))
{
….
}
- StreamReader
- 역할 : StreamWriter에서 전달하는 문자열을 종결자 단위로 읽기
- 생성자
- 스트림 설정
public StreamReader ( Stream stream )
NetworkStream ns = tcpClient.GetStream();
using ( StreamReader sr = new StreamReader(ns ) )
{
…
} // using 구문안에서 필요한 작업을하면 자동으로 close호출됨으로 따로 안닫아줘도 된다.
- StreamReader.ReadeLine() : 종결자 단위로 읽기
public override string REadLine()
리턴값이 null 이면 읽을 것이 없음
- StreamReader 해제 : StreamReader.Close()
- -> using 문 사용
- 중간 정리
- NetworkStream은 기본 전달 경로 제공
- StreamWriter와 StreamReader
string형 + 종결자 ( '\n', '\r\n', '\r')
-> 데이터를 다루기ㅏㄱ 쉽다.
- NetworkStream + StreamWriter, StreamReader 사용
-> 코드적인 편의 증가 -> 생산성 증가!
728x90
'기타 공부 기록 > csharpnetwork인강' 카테고리의 다른 글
콘솔코드를 윈도우 코드로 변환(1/3) (0) | 2022.01.13 |
---|---|
네트워크 클래스 (5/5) (0) | 2022.01.13 |
네트워크 클래스 (2/5) (0) | 2022.01.11 |
네트워크 클래스 (3/5) (0) | 2022.01.11 |
( 네트워크 클래스 1/5 ) (0) | 2022.01.07 |