안녕하세요?
또 도움을 받아보려구요.. ^^;;(항상 받기만 함~ ^_^;;)
소켓통신에 관한건데요~ 제가 하려는건요~
소켓 A, B가 있다고 하면~ 소켓 A쪽에서 이벤트가 일어날때마다 데이터를 압축해서 B에게 넘겨주지요~ B는 받은 압축된 데이터를 풀어서 정해진 처리를 하구요~ (여기서 저는 넌블러킹이 어울릴꺼 같아서 넌블러킹소켓을 골랐지요~ ^-^;;)
그런데 문제가 생겼는데,,*_*;; A쪽에서 이벤트가 연속적으로 일어나거든요~ 그런데 보내는 데이터가 크면 B쪽에서 압축된 데이터를 푸는데 시간이 걸릴때가 있어요~ 여기서..문제..ㅡ.ㅡ;; 받은 데이터의 압축을 풀고 있는데 데이터가 또 날아오니 문제가 생기는거 같아요..적어도 제 생각에는 말이죠..(혹시 제가 잘못 생각했다면 한수 지도해주세요~)
그래서 동기화가 필요한거 같다는 생각이 들었습니다. 그래서 블러킹 소켓으로 구현하려고 하는데 제가 잘 몰라서요 ^^;; 제가 알기에 블러킹 소켓에서는 데이터를 보내는 한 텀(term)이 '서버소켓 접속->데이터전송->소켓끊기'라고 알고 있는데요..
만약 메세지 보내는 많은 이벤트가 일어나면 '서버소켓접속->데이터전송->소켓끊기'의 주기가 많이 일어나잖아요..이 방법또한 해보니까 에러가 나더라구요..^^;;("Could not connect to "server name." Cause: connection refused (10061)")
그럼 남은 방법이 넌블러킹에서 압축된 데이터를 푸는작업을 쓰래드로 처리하는 방법이 남은거 같은데 아직 해보지는 않았거든요~
그런데 지금까지 제가 해본방법들을 모두 올바르게 구현했는지에 대해 확신이 서지 않아서요.. ^^;; 고수님들께서는 제가 하려는 것에 어떤 방법이 어울리는지 한수 지도해주시면 정말 감사하겠습니다. ^-^;;
윽..쓰다보니 너무 길어졌네여..^-^;; 참,,그리고 혹시 '헥사압축'이란거에 대해 아시는분 계시면 간단한 소개 부탁드리겠습니다.
아.. 델파이는 초보고.. VC 프로그래머지만.. 한말씀..
저도 논블러킹 방식을 사용하여 개발했는데..
님이 사용하신 방법틀린건 없고.. 쓰레드를 사용해야 되는건 확실함다..
파일푸는중에 데이터가 들어오면 버퍼에 차곡차곡 저장해놓구
순차적으로 풀어야 겠죠....