리눅스용 통신라이브러리를 솔라리스에 포팅시 문제가 있습니까?

soft20의 이미지

안녕하십니까?
좀 이상한 문제에 봉착해 있어서 이렇게 도움을 요청합니다.
현재 똑같은 라이브러리 및 소스코드를 이용하여 리눅스에서는 g++ 3.2.2를 솔라리스에서는 g++ 3.1을 사용하여 라이브러리를 각각 컴파일하고, 소스는 동일하므로 컴파일을 했습니다.
프로그램은 소켓 통신으로 서버로 메시지를 전달하도록 되어 있습니다.
제가 소켓으로 send하기전 fwrite를 이용하여 메시지를 바이트단위로 출력했을때 두기종간의 메시지가 동일합니다. 하지만 리눅스에서 전송한 데이터는 서버에서 정상 처리를 하는 반면, 솔라리스에서 전송한 데이터는 서버에서 거부하고 있는 것으로 보입니다.
서버에서 이를 확인해 주면 쉽게 될것으로 생각되지만 이또한 쉽지 않은 일이라 혹시 이런 경험을 가지신 분이 있으시면 조언 부탁드립니다.
바이트오더는 리눅스에서 htonl로 변경하고 있으니 솔라리스에서는 신경을 쓰지 않아도 되리라 생각이 됩니다. 아참 서버는 AIX입니다. :cry:

albamc의 이미지

AIX서버쪽으로 나가는 패킷을 스위치 미러링등을 통하여

중간에서 잡아채서 덤프한걸 비교해보면 금방 해결될것 같네요.

좀 시간이 걸리더라도 가장 확실한...

^^*

펑키의 이미지

바이트 오더 문제는 아닐까요.? AIX쪽에서 x86 기준으로 변환하게끔 해놓아서 정작 쏠라리스에서 들어오는것을 이상하게 받는것은 아닐까요.? 그냥 혹시나 해서요.

soft20의 이미지

역시 이런 문제는 네트워크 상에서 페킷을 보는 것이 가장 빠른 길이 었던거같습니다. 혹시 이런 이상한 문제를 당하시는 분이 있으실까봐 제 경험을 써봅니다.
우선 TCP dump를 이용하여 리눅스와 솔라리스의 패킷을 받아본 결과. 솔라리스에서 IP 패킷 해더 부분의 TTL 값이 1로 셋팅되어 나가고 있었고, 리눅스는 기본 64로 나가고 있었습니다. 이 또한 정말 이상한 현상으로 setsockopt함수를 이용하여 소켓 옵션을 SO_DONROUTE 셋팅을 해놓았는데 리눅스에서는 이 옵션이 소용이 없는거 같더군요. 하지만 솔라리스에서는 정상적으로 셋팅이 되더군요.
역시 삽질이 가장 빠른 방법이었습니다. TT
답변 주신 고수님들 감사드립니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.