2009. 3. 19. 15:30


System.Net 네임스페이스를 통해서 단순히 소켓프로그래밍(TCP통신, UDP통신)만 하는것이 아니다.
여러가지 많은 것을 할 수 있는데.. System.Net.NetworkInformation.Ping에 대해 알아보겠다.

보통 cmd창에서 아래와 같이 해본사람이 많을 것이다.
    c:\> ping 127.0.0.1 (엔터)

이런 작업을 C#.NET 코드로 구현이 매우 쉽게 가능했다. 아래 샘플 코드만으로도 쉽게 이해할 수 있으리라 생각한다.

Ping.Send 함수는 overloading이 많은데 자세한 내용은 아래 링크를 참고하면 되겠다.
 -> http://msdn.microsoft.com/ko-kr/library/7hzczzed.aspx

참고로 무조건 timeout이 발생하는 hostname이 있을 수 있다. (예:www.daum.net, www.naver.com 등)
이것은 아마도 네트워크 관리자(?)가 해당 서버로 ping요청이 허용되지 않도록 막았을 가능성이 매우 크다.

-------------------------------------- 샘플코드 --------------------------------------

System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply reply = p.Send("127.0.0.1"); // www.contoso.com
MessageBox.Show(reply.Status.ToString() + "//" + reply.RoundtripTime.ToString());

--------------------------------------------------------------------------------------

Posted by CoolDragon
2009. 3. 19. 12:49

09.03.19

오늘도 출근길 전철에서 있었던 일이다.
오늘은 그 전처럼 사람들이 붐비지 않았다.
역시나 오늘도 의정부역에서 출발하는 전철을 타게되었다.
시발(욕아님)하는 열차라 자리에 앉아 잠을 청했다.
목적지에 점점 다가오는 기분에 눈을 떴다.
뭔가 클로즈업이 되었다.
앞에 서 있는 아가씨가 남대문, 아니 여대문(?)을 버젓이 열어 놓고 계신게 아닌가..
(다행히 속옷은 보이지 않았다~ 왜 아쉬워?)

그 졸린 상태에서도 난 생각했다.
생각1 - 저기요.. 거기열렸어요?라고 말한다.
생각2 - 핸폰문자를입력하여핸폰을보여준다.
생각3 - 일행이 있어보여 내릴때 그 사람에게 대신 말한다.

근데 그 생각의 갈등을 뒤로하고 다시 자버렸다. ㅋㅋ
사실 말하기도 뻘쭘하고 변x로 오해를 살 수 있어서.. 우헤~
내릴 역에 도착할 때쯤 다시 눈을 뜨니 그녀는 이미 사라진 상태였다.
과연 그녀는 어디로 갔을까? 안타까울 따름이다.ㅋㅋ

Posted by CoolDragon
2009. 3. 16. 10:59

Silverlight를 ControlTemplate와 DataTemplate 를 접했다.
자주 접한 것 같지만 이 녀석들은 내겐 참 헷갈린다. (곧 잡아 먹어주겠다~ 흐흐흐)
이번 블로깅을 통해 조금이나마 개념 파악을 위해 DataTemplate를 정리해 보고자 한다.

그중 가장 흔하게 접하는 것이 ListBox 컨트롤의 ListBoxItem일 것이다.
이 ListBoxItem을 XAML 코드를 보면서 이해해 보고자 한다.

ListBoxItem을 다른 형태로 출력하는 방법은 아래 2가지가 있다.
(사실 아마 더 있을지도 모른다. 지금 개념파악을 위해 정리하는 것이므로 더 있으면 추가하도록 할 것이다.)

--------------------------------코드보기-----------------------------------

1) Inline 방법

<UserControl ...>

<ListBox x:Name="MyBooks" Margin="5" ItemsSource="{Binding}">
 <ListBox.ItemTemplate>
  <DataTemplate>
   <StackPanel Orientation="Horizontal" >
    <TextBlock Text="{Binding Name}" />
    <TextBlock Text="{Binding Birthday}" />
   </StackPanel>
  </DataTemplate>
 </ListBox.ItemTemplate>
</ListBox>

</UserControl>


--------------------------------------------------------------------------------

2) Resource 방법

<UserControl ...>
<UserControl.Resources>
 <DataTemplate x:Key="DataTemplate1">
  <StackPanel Orientation="Horizontal" >
   <TextBlock Text="{Binding Name}"/>
            <TextBlock Text="{Binding Birthday}" />
  </StackPanel>
 </DataTemplate>
</UserControl.Resources>

...

<ListBox ItemTemplate="{StaticResource DataTemplate1}" x:Name="listboxMediaList" Margin="5,3,5,5" Grid.Row="1"  />

...

</UserControl>

Posted by CoolDragon