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


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

자바에선 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

  • 2016년 02월 23일에 작성됨

조회수 227


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:] 이런식으로 앞의 문자를 자르는 편법을 쓸수있을것같습니다.

  • 2016년 02월 23일에 작성됨

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

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close