텔넷 출력버퍼? 개행문에러..? 질문드립니다.

kysu5095의 이미지

안녕하세요. 이게 무슨 문제인지도 잘 모르겠어서 제목을 저렇게 적었습니다.

현재 A PC에 있는 로그(dmesg)를 B PC에서 telnet으로 통신하여 받아오는 작업을 하고 있습니다.
먼저 A PC에서의 dmesg의 예시가

00:00:00 aaaaaa
00:00:00 bbbbbb
00:00:00 cccccc
00:00:00 dddddd
00:00:00 eeeeee

라면 B PC에서 telnet을 통해 받은 A PC의 dmesg는
00:00:00 aaaaaa
               00:00:00 bbbbbb
                              00:00:00 cccccc
                                             00:00:00 dddddd
                                                            00:00:00 eeeeee

처럼 나오고 있습니다.

위의 문제가 뭔지 모르겠어서 무엇을 질문해야하는지도 잘 모르겠습니다ㅠ
어떤이유로 위와같은 문제가 생기는거며 어떻게 해결해야 할까요..?
환경은 Ubuntu 16.04 LTS입니다.

나빌레라의 이미지

A에서 B로 보낼 때 개행을 추가 하세요 (\r\n)

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

kysu5095의 이미지

제가 설명을 부족하게 한 것 같습니다.
지금 보내고 있는 로그는 A PC의 /var/log/messages에 있는 커널로그 입니다.
따로 카피해서 보내는것이 아닌 messages파일 자체를 통신하여 실시간으로 공유하고 있습니다.
혹시 이 부분에서 개행을 추가할 수 있을가요?

나빌레라의 이미지

/var/log/messages에 있는 커널로그는 \n 만 있습니다. 터미널에서 개행이 되게 하려면 \r\n을 추가해야 합니다.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

kysu5095의 이미지

넵 추가하는 작업을 해보겠습니다

chanik의 이미지

리눅스를 포함한 유닉스 계열에서는 텍스트 파일의 각 줄이 LF(Line Feed : \x0A) 문자 하나로 끝나고, 터미널에서는 LF를 만나면 CR(Carriage Return : 0x0D)을 붙여서 CRLF(0x0D0A) 처럼 처리합니다. CR은 커서를 줄 맨 앞으로 보내는 일을 하고 LF는 한 줄아래로 내리는 일을 하므로, 둘이 조합된 CRLF는 다음줄 맨 앞으로 커서가 이동하게 만드는거죠.

지금 보이는 계단현상은, LF를 CRLF처럼 처리하지 않고 문자그대로 Line Feed로만 처리할때 일어나는 모습입니다.

내용물을 보여주는 쪽에서 LF를 CRLF처럼 처리하도록 하거나, 내용물을 읽고 가져오는 과정 어딘가에서 LF가 CRLF로 바뀌게 만들어야겠네요.

kysu5095의 이미지

CR을 추가하는 방법을 찾아보겠습니다. 감사합니다!

chanik의 이미지

어떤 식으로 내용물을 읽고 가져오시는지는 모르겠으나,

서버쪽에 스크립팅이 가능한 상황이라면, sed 's/$/\r/' /var/log/messages 식으로 처음 파일을 읽어낼때 CR을 추가할수도 있고

B PC에서 telnet 클라이언트로 putty를 쓰실 수 있는 상황이라면, putty 설정에서 [Terminal] -> [Implicit CR in every LF] 옵션을 켜서 전송과정에서 CR을 추가할 수도 있습니다.

힌트가 될 지 모르겠네요.

kysu5095의 이미지

힌트 감사드립니다.ㅠ 클라쪽에서 putty사용이 어렵기에 서버쪽에서 바꾸어 보는쪽으로 찾아보겠습니다

bushi의 이미지

Serial Programming Guide for POSIX Operating Systems
https://www.cmrr.umn.edu/~strupp/serial.html

서버측 프로그램의 tty output option 을 손보시던가
클라이언트측 프로그램의 tty input option 을 손보세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.