소켓 통신 도중 이상한 값이 추가됩니다.

조회수 1386회

서버는 자바, 클라이언트는 파이썬입니다.

자바에선 writeUTF로 스트링을 전송합니다.

서버 코드입니다.

    public void sendPacket(String packet) {
        try {
            out.writeUTF(packet);
            out.flush();
        } catch (IOException e) {
        }
    }

    sendPacket(WebAction.Index.getServerMessage());

클라이언트 코드입니다.

        soc.connect(("127.0.0.1", 7824))
        writeString(soc, "ServerMsg&")
        msg = soc.recv(1024)

아래는 문제의 사진입니다.

![alt text][1]

' 뿐만 아니라 숫자가 추가 될 때도 있고, 문자가 추가 될 때도 있는 것 같습니다. 몇 번 질문 올렸었는데, 좋은 답변 많이 주셔서 또 올리게 되네요. 시간 내주셔서 감사합니다.

[1]: http://res.cloudinary.com/eightcruz/image/upload/v1456174690/sm2pm47oik0ldz0uoz1u.png

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    왜 그런지는 저도 모르겠지만 문자열 앞에 항상 이상한 문자가 들어가는 거라면

    HOST='127.0.0.1'
    PORT=5007
    s=socket(AF_INET,SOCK_STREAM)
    #s.bind(HOST, PORT)
    s.connect(('127.0.0.1', 8821))
    
    data=s.recv(1024)
    data = data[2:]
    s.close()
    print('Received : %s' % data)
    

    data = data[2:] 이런식으로 앞의 문자를 자르는 편법을 쓸수있을것같습니다.

    • 그게 앞의 문자가 항상 붙튼게 아니라서 고민입니다. ㅠㅠ.. o11o 2016.2.26 19:06

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.