아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
그윽한백로58
그윽한백로5820.09.03

C# 파이썬 소켓통신 중 정수형 데이터 송수신에 질문이 있습니다.

C#(클라이언트) ----- 파이썬(서버)간에 소켓통신으로 데이터 송수신중인데요.

파이썬에서 정수형 데이터를 보내고 C#에서 정수형데이터를 출력하려는데 공백이나옵니다.

정수형데이터는 송수신이 불가능한가요? 아니면 제가 코드를 잘못짠건가요?..

아래는 해당부분 코드입니다.

파이썬(서버)코드 (data2가 정수형이고 str(data2)로 형변환했는데도 공백이 나옵니다.)

C#(클라이언트)코드

출력화면

55글자 더 채워주세요.
답변의 개수1개의 답변이 있어요!
  • 이미 문제는 해결하셨으리라 생각되는데 한번 남겨 봅니다.

    이런 경우엔 echo server / client 부터 구현해보시는게 좋을 것 같아요. byte[] 통신을 하는 경우엔 최근엔 Protocol Buffers와 같은 직렬화 라이브러리를 많이 사용하니 위에 예시로 주신 데이터 외 더 복잡한 형식의 데이터 송수신이 필요한 경우에 살펴보시면 좋겠습니다.

    아래 코드는 질문에 대한 답변입니다. 복잡해질 수 있는 부분은 모두 제외했어요.

    [python]

    data = 12345

    socket.sendall(data.to_bytes(4, 'big')) # socket close는 바로 하지 마시기 바랍니다.

    [c#]

    int recv = socket.Receive(buffer);

    if (recv == 4) {

    if (BitConverter.IsLittleEndian)

    Array.Reverse(buffer, 0, 4); // to little endian

    Console.WriteLine(BitConverter.ToInt32(buffer, 0));

    }