더북(TheBook)

2.3.1 스트림 형식

스트림(stream)이란 데이터의 흐름입니다. 두 단말기를 연결한 후 그 연결을 끊기 전까지 한쪽에서 다른 한쪽으로 연결된 데이터 흐름 하나를 일컫습니다. 스트림 안에 있는 데이터를 중간에 끊는 것은 여러분 몫이며, 스트림 자체는 데이터를 중간에 구별하지 않습니다.

스트림은 파일 읽기, 쓰기에서 언급하는 스트림과 같습니다. 예를 들어 보겠습니다.

PrintFileContents()
{
  fp = OpenFile("a.txt");
  while (!fp.IsEOF())
  {
      data = fp.ReadStream(100);
      Print(data);
  }
}

먼저 파일을 열고 100바이트씩 읽어 들입니다. 이때 실제로 읽어 들이는 데이터가 항상 100바이트인 것은 아닙니다. 그 이하이거나 0바이트만 읽을 수도 있습니다.

컴퓨터 네트워크에서 스트림 개념은 조금 더 독특합니다. 단말기 A에서 스트림 형태로 송신하고 단말기 B에서 그 스트림을 수신한다고 가정합시다. 이때 단말기 A에서 스트림에 넣은 데이터가 단말기 B에서 꺼낸 것과 완전히 같지 않을 수 있습니다. 하지만 단말기 A에서 보낸 것을 모두 이어 보면 단말기 B에서 꺼낸 것을 이은 것과 같습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.