안드로이드/프로그래밍
소켓 프로그래밍
에어버스
2015. 7. 18. 15:31
서버에 연결 후 지연시킨 다음에 서버에 요청해야 한다. (서버연결이 쓰레드로 진행되기 때문일듯)
18번 줄과 같이 지연을 시켜야 오류가 안남.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
boolean 서버연결() {
conSock = new ConnectSocket(); // 쓰레드처리 안하면 오류
if(conSock == null)
return false;
conSock.setDaemon(true);
conSock.start();
return true;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!서버연결()) {
Toast.makeText(this, "서버연결 실패", Toast.LENGTH_SHORT).show();
return;
}
try {
Thread.sleep(200); // 서버 연결될때까지 지연시켜야 하는듯, sleep()없으면 오류남.
} catch (InterruptedException e) {
e.printStackTrace();
}
boolean 종목요청() {
_서버전송(_종목수요청코드 + " ");
return true;
}
} |
대형데이타를 한번에 전송이 어려운 경우 끊어 블럭으로 만들어 전송하는 경우 한 블럭 전송한 다음 지연시키고 다음 블럭을 전송해야 수신측에서 안 겹침. (MFC가 서버인 경우 Sleep(400) 이 안정적, 총 전송데이타는 35KB일때)
<MFC 서버코드>
while(마지막블럭까지) {
...
pClient->Send(szBuffer, lstrlen(szBuffer)); // 종목 전송
Sleep(400);
}