마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Socket 통신 패킷 생성 방법.

0 추천
대충 실시간 채팅 프로그램을 만들려고 합니다.

그래서 소켓을 사용하려고 하는데요.

- 패킷의 구성 -

header 는 int 이며, body 의 메시지 길이를 정의하고,

body 는 json 문자열을 사용하려고 합니다.

근데 제가 java 쪽 언어를 사용해본적이 없어서 어떤 객체를 사용해야 할지 잘 모르겠습니다.

 

우선 EditText에서 사용자가 입력한 문자를 얻어온 후,

"{ "action" : "send_chat" , "msg" : "하이하이" }' 이런 형태로 body를 만들고,

이 바디의 바이트 길이만큼을 header로 지정하려고 합니다.

 

1. 우선 바디의 바이트 길이를 어떻게 얻어오나요?

2. Socket.getOutputStream() 을 어떤 객체와 연결해서 패킷을 보내야 하나요?

도움 부탁 드립니다.
박봉배 (730 포인트) 님이 2015년 4월 27일 질문

2개의 답변

0 추천
 
채택된 답변
- 자답 -
 
String strSend = ed_send.getText().toString();
 
strSend = new String(strSend.getBytes("utf-8"));
            
BufferedOutputStream bos = new BufferedOutputStream(m_soc.getOutputStream());
DataOutputStream dos = new DataOutputStream(bos);
            
dos.writeInt(strSend.getBytes().length);
dos.write(strSend.getBytes());
dos.flush();
박봉배 (730 포인트) 님이 2015년 4월 27일 답변
0 추천
1. 
int header = body.getBytes().length;
 
2.
Socket.getOutputStream.write(패킷);
익명사용자 님이 2015년 4월 27일 답변
감사해요. string 객체에 getBytes() 가 있다는걸 덕분에 알았습니다.
...