Android 클라이언트와
 
C# 서버가 tcp로 소켓 통신을 하려고 하는데요..
 
뭐 스트링은
자바에서 EUC-KR 로 보내고..
C# 에서는 System.Text.Encoding.GetEncoding(EUC_KR_CODE_PAGE) 이거 이용해서 받으면 잘되고요
 
int 는
자바에서 DataOutputStream 이용해서 writeInt 해서 보내고
c# 에서는 byte[] 를 Array.Reverse(byte[]); 에 넣어서 BitConverter.ToInt32(temp, 0); 하면
int 타입도 잘 받을수 있었습니다...
 
물론 위에꺼만 해결하는데도 좀 삽질을 많이 했지만요...
 
 
하지만... 문제는...
 
파일전송을 해야하는데요.. (이미지파일)..
 
자바에서
DataOutputStream 으로 이미지파일을 byte[] 형태로해서 쭉 뿌려주고
 
c#에서는
byte[] 로 읽은걸 MemoryStream 으로 쭉 모은다음에
FileStream에 MemoryStream 을 toArray() 해서 넣은다음 Write 파일로 만들면요...
 
이미지가 깨져서 들어오네요..ㅠㅠ 바이트 배열 길이는 맞는데 말입니다..ㅠㅠ
 
인터넷에 찾아보니까 JAVA 의  byte는 부호있는 8비트 정수(-128 ~ 127) 고
C# 의  byte 는 부호없는 8비트 정수(0 ~ 255) 라는데요..
 
그래서 안맞아서 그런건지..

 

Java 에서 변환해서 보내야하는건지

C#에서 변환해서 받아야 하는건지..

 

아직 잘 모르겠습니다..
 
ㅠㅠ 이건 찾아도 잘 안나오고..
 
위 방법이 아니더라도 c#과 java 간에 tcp 로  파일전송 해보신분 계신가요..
 
여기서 막혀서 더 못나가고 있네요 ㅠ