본문 바로가기

C#

[c# TCP socket] Clinet가 죽은것을 알아채기


<TCP 서버 에서 TCP클라이언트를 이용하는 상황에서..>

TcpClient 클래스 속성중 Connected  라는 속성이 있다. 말그대로 클라이언트가 살았는지 죽었는지

판단하는 속성인데 서버에서 잘 작동하지 않는다. ( 나만 잘 모르는 것일수도 있다.)

그리고 통상적으로 while 루프 안에 스트림을 읽어 오는 코드를 작성한다음

클라이언트 프로그램이 종료 되는경우를 TcpClient 클래스 속성중 Connected  를 이용하면

무한 루프에 빠진다.

해결책은 클라이언트로 오는 바이트 수가 "0" 인것을 확인하여 처리를 해주면 된다.



             while(true)
            {
                /***중요***/
                reciveByte = new byte[1024];
            
                data = reader.ReadLine();
                if(data == null)
                {
                    Invoke(mrg , "클라이언트가 죽었습니다");
                    AceptClient();
                    break;
                }
                
                
                /*** 중요 ***/
                else if(stream.Read(reciveByte , 0 , reciveByte.Length) == 0)
                {
                    Trace.WriteLine("EXIT");
                    AceptClient();
                    break;
                }
            }
/*** 중요 ***/ 라고 되어 있는 부분을 보면 된다.

byte[] 를 하나 만들어  Stream 의 Read 속성을 적용 시켜 주면 된다.

만약 공백이라면 "1" 바이트 를, 값이 날라오지 않는 경우라면 "0"  을 반환 함으로 Client가 죽었는것을 알수 있다.

추가로 첫번째 예외처리는 서버app 를 종료할때 생기는 에러를 대처하기 위함이다.

순간적으로 data 가 Null 값이 됨으로 while 를 탈출하게 해논것이다.
 
 
 
파일 전송중 클라이언트 사망을 눈치 채기 (2012,02,12)
http://scripter.co.kr/203

  • 이전 댓글 더보기
  • BlogIcon cheap moncler coats 2014.09.11 04:22

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon canada goose online store 2014.09.18 00:27

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon 匿名 2014.09.28 14:38

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon discount oakley sunglasses 2014.10.04 13:58

    이용약관위배로 관리자 삭제된 댓글입니다.

  • 이용약관위배로 관리자 삭제된 댓글입니다.

  • 匿名 2014.11.10 17:32

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon 深圳横岗眼镜批发 2014.11.12 00:51

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon Discount sharp tv 2014.11.12 03:17

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon moncler donna 2011 2014.11.12 11:44

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon moncler angers jacket uk 2014.11.12 11:46

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon Ralph Lauren vinterjakke 2014.11.23 08:08

    이용약관위배로 관리자 삭제된 댓글입니다.

  • BlogIcon furla handbags 2014.11.28 08:26

    이용약관위배로 관리자 삭제된 댓글입니다.

  • 匿名 2014.12.03 05:44

    이용약관위배로 관리자 삭제된 댓글입니다.

  • 匿名 2015.01.15 12:20

    이용약관위배로 관리자 삭제된 댓글입니다.

  • 匿名 2015.02.11 14:03

    일습大话西游服务端凡人修真服务端大话西游服务端页游服务端问道服务端

    跑跑卡丁车服务端英雄远征服务端幻灵游侠私服务端洪荒神话私服务端

    完美世界服务端烈焰服务端洛汗服务端新魔界服务端绝对女神私服务端


    魔兽私服开区一条龙服务-

    传奇私服开传奇一条龙服务-


    传奇广告代理-

    IDC服务器以及空间租用-

    魔域开区sf一条龙开区服务-


    客服咨询QQ(企鹅扣扣)1325876192

    Email:1325876192@qq.com

    商业版本免费开放下载




    紫川科技最新毁灭天下1.85狂雷独家合击热血复古三职业新装传奇服务端



    紫川科技20星大极品良装+80麒麟锻造中变传奇服务端



    紫川科技独家轻变1.89奥妙转生神龙锻造珍珑元素版传奇服务端



    紫川科技独家九转1.85四皇冠加倍装备特戒龙卫법알

  • 匿名 2015.03.01 14:22

    버가大话西游服务端凡人修真服务端大话西游服务端页游服务端问道服务端

    跑跑卡丁车服务端英雄远征服务端幻灵游侠私服务端洪荒神话私服务端

    完美世界服务端烈焰服务端洛汗服务端新魔界服务端绝对女神私服务端


    魔兽私服开区一条龙服务-

    传奇私服开传奇一条龙服务-


    传奇广告代理-

    IDC服务器以及空间租用-

    魔域开区sf一条龙开区服务-


    客服咨询QQ(企鹅扣扣)1325876192

    Email:1325876192@qq.com

    商业版本免费开放下载




    紫川科技最新毁灭天下1.85狂雷独家合击热血复古三职业新装传奇服务端



    紫川科技20星大极品良装+80麒麟锻造中变传奇服务端



    紫川科技独家轻变1.89奥妙转生神龙锻造珍珑元素版传奇服务端



    紫川科技独家九转1.85四皇冠加倍装备特戒龙卫표일

  • 로상Parfois. vous le petit de l'ancienne Cor&eacute;e. et de maintenir le cot,Le Parti communiste chinois a envoy&eacute; un grand nombre des cadres et agents responsables de joint," Veuillez &eacute;galement un "nouveau P&eacute;kin". 闻东国. mais deux ermite monarque sans chemise homme burberry pas cher int&eacute;rts,Ce silence, je pense que c'est parce que son billet.Parce que le contrle sup&eacute;r일립

  • BlogIcon chemisier burberry 2015.03.31 00:03

    수있La broche de g&eacute;n&eacute;ration de P&eacute;kin de "Division" est le premier jour de la limite de violations de sanctions ne sont pas utilis&eacute;s (figure) dans le nouveau r&eacute;seau -

    Source: Chinanews mise &agrave; jour: 2015-03-29 04: 40: 52 de classification: les mots - cl&eacute;s: 李婷婷, pratique, de P&eacute;kin, le tableau de ticket

    P&eacute;kin "g&eacute;n&eacute;ration q로있

  • 匿名 2015.04.04 02:54

    알상Like the above, knitted hat and a jacket with a lining seam searsucker-like. We're not normally a heavy logo'd pieces,What You Should Know Before Y, but the embroidered letters feels like a part of the winter-generic design.



    Few have left thoughts about the current collection. Moncler is not for everyone because not everyone can come from the look of nyloned painted in a bright color,, but 메서

  • 匿名 2015.04.05 10:19

    로네火车采集器html简单模板示范






    Run With Dragon Meditation Energy







    [标签:来源]








    After you have been training dragon meditation (DM), hope you can enjoy and get benefit from your DM activities. Now, I will update one benefit with DM. On e-book and some articles I was mentioned that DM can do in water, under the sun, in the sand, etc. Also, you can do in various positions as l들데