Q&A

  • 방법이 뭘까요?.. 클라이언트소켓 관련 입니당^^
안녕하세요... 비가 오고 있습니다.. 태풍이라는데.. 피해가 없기를...^^



클라이언트소켓을 실행중에 close 시킨후 다시 open 시켜 메세지를 보내면...



가지를 않습니다.. 이유가 무척궁금합니다..



clientsocket1.active := false;

clientsocket1.address = '127.0.0.1';

clientsocket1.active := true;

clientsocket1.socket.sendtext('제발좀 가주라~');

sleep(100);

clientsocket1.active := false





문제는 꼭 이걸 보내야 하는데.. 해결방법이 없다는겁니다.



클라이언트를 true로 하면 당연히 connectting 되는데 왜 메세지가 안가는걸까요?



구창민님의 답변이 있었지만....



onwrite 로 해결을 못했습니다.. ㅠㅠ



위의 소스 중간에 clientsocket.socket.connected 로 체크(메세지창) 해보니



접속이 안된걸루 체크가 됩니다...



클라이언트 소켓을 true로 만들고 바로 메세지를 보낼수 는 없는겁니까?



아니면 위의 소스가 버튼이벤트인데.. 여기서 connectting 될때까지 체크할 수있는



방법은 없을까요?



많은 답변 바랍니다..



그리구여.... 위의 소스상에서 clientsocket.active := true 하구나서 뒤에



메세지창을 하나띄우고 나서 그걸 죽이면 메세지(제발 좀..) 가 갑니다... --;



이건 뭘 말하는 걸까요????



2  COMMENTS
  • Profile
    박서규 2000.07.31 23:42
    김영습 wrote:

    > 안녕하세요... 비가 오고 있습니다.. 태풍이라는데.. 피해가 없기를...^^

    >

    > 클라이언트소켓을 실행중에 close 시킨후 다시 open 시켜 메세지를 보내면...

    >

    > 가지를 않습니다.. 이유가 무척궁금합니다..

    >

    > clientsocket1.active := false;

    > clientsocket1.address = '127.0.0.1';

    > clientsocket1.active := true;

    > clientsocket1.socket.sendtext('제발좀 가주라~');

    > sleep(100);

    > clientsocket1.active := false

    >

    >

    > 문제는 꼭 이걸 보내야 하는데.. 해결방법이 없다는겁니다.

    >

    > 클라이언트를 true로 하면 당연히 connectting 되는데 왜 메세지가 안가는걸까요?

    >

    > 구창민님의 답변이 있었지만....

    >

    > onwrite 로 해결을 못했습니다.. ㅠㅠ

    >

    > 위의 소스 중간에 clientsocket.socket.connected 로 체크(메세지창) 해보니

    >

    > 접속이 안된걸루 체크가 됩니다...

    >

    > 클라이언트 소켓을 true로 만들고 바로 메세지를 보낼수 는 없는겁니까?

    >

    > 아니면 위의 소스가 버튼이벤트인데.. 여기서 connectting 될때까지 체크할 수있는

    >

    > 방법은 없을까요?

    >

    > 많은 답변 바랍니다..

    >

    > 그리구여.... 위의 소스상에서 clientsocket.active := true 하구나서 뒤에

    >

    > 메세지창을 하나띄우고 나서 그걸 죽이면 메세지(제발 좀..) 가 갑니다... --;

    >

    > 이건 뭘 말하는 걸까요????

    >



    안녕하세요...

    델파이에 기본으로 깔리는 클라이언트소켓에서는 저도 그런 경험이 있었습니다.

    해결방법이 될련지는 모르겠지만, 꼭 true로 하고 바로 보내야 하는건지요..

    OnConnect이벤트에서 처리해줘도 무관할것 같은데요..

    그리고 메시지창을 닫으면 가는것은 그만큼 시간이 딜레이된후에 보내져서 그렇습니다.

    저희가 생각하듯 네트웍이 0.0001초만에 연결이 되는건 아닙니다.

    도움이 되셨으면...

  • Profile
    임형호 2000.07.31 13:35
    김영습 wrote:

    > 안녕하세요... 비가 오고 있습니다.. 태풍이라는데.. 피해가 없기를...^^

    >

    > 클라이언트소켓을 실행중에 close 시킨후 다시 open 시켜 메세지를 보내면...

    >

    > 가지를 않습니다.. 이유가 무척궁금합니다..

    >

    > clientsocket1.active := false;

    > clientsocket1.address = '127.0.0.1';

    > clientsocket1.active := true;

    > clientsocket1.socket.sendtext('제발좀 가주라~');

    > sleep(100);

    > clientsocket1.active := false

    >

    >

    > 문제는 꼭 이걸 보내야 하는데.. 해결방법이 없다는겁니다.

    >

    > 클라이언트를 true로 하면 당연히 connectting 되는데 왜 메세지가 안가는걸까요?

    >

    > 구창민님의 답변이 있었지만....

    >

    > onwrite 로 해결을 못했습니다.. ㅠㅠ

    >

    > 위의 소스 중간에 clientsocket.socket.connected 로 체크(메세지창) 해보니

    >

    > 접속이 안된걸루 체크가 됩니다...

    >

    > 클라이언트 소켓을 true로 만들고 바로 메세지를 보낼수 는 없는겁니까?

    >

    > 아니면 위의 소스가 버튼이벤트인데.. 여기서 connectting 될때까지 체크할 수있는

    >

    > 방법은 없을까요?

    >

    > 많은 답변 바랍니다..

    >

    > 그리구여.... 위의 소스상에서 clientsocket.active := true 하구나서 뒤에

    >

    > 메세지창을 하나띄우고 나서 그걸 죽이면 메세지(제발 좀..) 가 갑니다... --;

    >

    > 이건 뭘 말하는 걸까요????

    >



    답변은 아니고요. clientsocket을 바로 true 한후 메세지를 보낼경우 안가는 경우가 있던것 같더라구요. 저같은 경우에는 clientsocket이 serversocket에 접속할 경우 해당 client로 접속되었다는 메세지를 보내주고 client에서는 이메세지를 수신할경우 해당 메세지를 보내주도록 했던것 같거든요.

    그때 저두 이유를 몰라서 나름대로 client에서 server로 접속하는데 시간이 걸리는데 그 사이에 바로 메세지를 보내서 그런것이 아닐까 하고 생각했었거든요. 저두 궁금하네요.

    혹시 sleep(100) 다음에 clientsocket1.socket.sendtext('제발좀 가주라~'); 문장을 기입하면 돼지 않을까요?

    죄송합니다.