다니고 있는 회사에서 Socket을 자주 사용한다. 매일 다른 블로거님들의 자료를 긁어오다가 나도 공부차원에서 계속해서 반복했던 패턴들을 정리하고자 한다.

 

나는 WPF에 UDP 통신이 가능한 프로그램을 만들고자 한다.

 

이름은 MySocketProjcet 로 지어준다.

 

틀만 먼저 만들어준다.

UDP Socket UI Frame

아직은 배우는 단계라 Margin 을 막써서 최대한 간결하게 UI를 구상했다.

데이터를 받는 부분은 색감을 줘서 구분을 지어줬다.

 

IP와 PORT를 기입한 후 Socket Setting 버튼을 눌러 UDP 소켓을 설정해줄 예정이다.

 

<Window x:Class="MySocketProject.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MySocketProject"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="400">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="40"/>
        </Grid.RowDefinitions>

        <Grid Grid.Row="0">
            <TextBlock  Text="IP" Height="20" TextAlignment="Left" Margin="13,10,338,10"/>
            <TextBox Text="127.0.0.1" Width="100" Height="20" Margin="77,10,223,10"/>
        </Grid>

        <Grid Grid.Row="1">
            <TextBlock  Text="PORT" x:Name="IP_Tb" Height="20" TextAlignment="Left" Margin="13,10,338,10"/>
            <TextBox Text="5000" x:Name="PORT_Tb" Width="100" Height="20" Margin="77,10,223,10" />
            <Button Content="Socket Setting" Width="100" Height="20" Margin="296,10,4,10"/>
        </Grid>

        <Grid Grid.Row="2">
            <TextBox x:Name="ReceiveData" Background="#FFF9F2E7"/>
        </Grid>

        <Grid Grid.Row="3">
            <TextBox Text="Send Message Data" Height="20" Margin="10,10,114,10"/>
            <Button Content="Send" x:Name="SendBtn" Width="100" Height="20" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="293,0,0,0"/>
        </Grid>

    </Grid>
</Window>

 

해당 디자인의 xaml 코드이다.

 

다음장에는 Socket 클래스를 만들 예정이다.

 

+ Recent posts