|
요즘 버전에선 거의 안쓰지만...
예전 소스에 자주 사용했던 TClientSocket을 사용하다보니
이상한 현상을 발견해서 질문 드립니다.
Client 소켓 2개를 사용해서 별도로
Communication이라는 클래스를 만들었습니다.
여기에는 TClientSocket이 2개 들어있죠...
그런데....
MainForm에서 Communication 클래스를 직접 생성해서
소켓의 Host, Port를 설정하고 Active를 true로 변경하면
Active 값도 변경이 잘 되고 Server 접속이 잘 되는데....
MainForm에서 별도 생성한 Thread에서
Communication 클래스를 생성해서 똑같이 설정하고
Active를 true로 변경하면 Active 변경이 true안되고 접속도 안됩니다.
Communication 클래스는 동일한 것을 사용했으니...
차이라면... MainForm에서 생성한 경우와 Thread에서 생성한 경우인데...
어떤 문제가 있는 건지 잘 모르겠습니다...
TClientSocket이 Thread 기반으로 되어 있다고 얼핏 들은 것 같습니다...
그렇더라도 다른 Thread에서 돌아가는 게 문제가 있나요??
왜 MainForm에서는 잘되는데 Thread에서는 안될까요?
(Thread에서 Thread 생성하는 게 문제가 있는건지도 궁금하네요.. )
|