vc 서버와 java 클라이언트 소켓연결에 관해서...

익명 사용자의 이미지

정말 죽겠습니다.

머리가 나빠서 그런지 아무리 해도 영원히 삽질만... ㅠ.ㅠ

우선 vc 쪽은 제가 소스를 볼 수 없는 상황입니다.

자바 클라이언트에서 접속한 후(DataOutputStream 사용), writeInt나
writeChar 로 값을 넘겨주면 받지만, 문자열을 getBytes 메서드를 이용해
서 바이트로 변환해서 넘겨주면 받지를 아예 받지를 못합니다. (패킷이 들어
왔는지 조차 인식을 못하니 환장 하겠습니다) flush 를 사용해서 버퍼를 비

줘도 묵묵무답이고...

문제는 vc 쪽으로 100byte 정도의 문자열을 보내줘야 한다는 건데, 아시다시
피 writeInt나 writeChar로 보내면, 한번에 4byte or 1byte 밖에 못 보내
고... (더욱 황당한 건, 이놈들은 flush를 쓰지도 않았는데, 바로 전송해 버
립니다. 분명 vc 쪽에서는 여러 바이트를 받을 수 있도록 구현되어 있는데도
불구하고...)

원래 목표는 100|내용1|내용2 이런식으로 패킷을 보내고, 맨 앞은 short 형
으로, 전체 패킷의 byte length고, |은 각 필드값을 나누는 구분자 입니다.

즉, vc에서 100 바이트 만큼을 읽어, |을 기준으로 각 필드를 나누는 루틴입
니다.

vc 쪽은 단 한번만 입력을 받고, 소켓을 종료하도록 되어 있습니다.

휴... 도대체 어떻게 하면 좋을 지... 고수님들의 조언 부탁 드립니다. ㅠ.

익명 사용자의 이미지

일단 저도 VC쪽은 정확히 모르지만...

WindowAPI를 사용했다면 재가 알기론 기본적으로...
라인버퍼가 아닐까 생각이 드네요..

라인버퍼인경우 마지막바이트에 \n이 붙어야
블럭킹이 해제가 되겠지여.. 또는 그 싸이즈만큼 받아야 블럭킹 해제 되겠지
요..

도움이 되었나 몰겠네여..

이상 허접 답변이었습니다.

댓글 달기

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