整体代码下载

主要实现功能:

Socket的简单应用

可修改IP和端口

显示来访信息

界面设计:

界面采用MVVM设计,很简陋。

前台的主要目的是

输入IP地址

输入端口

输入文件目录

开启监听和停止监听

主页面的XAML代码:

<Window x:Class="简易静态服务器.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:简易静态服务器"    xmlns:data="clr-namespace:简易静态服务器.ViewModels"mc:Ignorable="d"Title="小型静态服务器" Height="450" Width="800" MinHeight="450" MinWidth="800" MaxHeight="450" MaxWidth="800"><Window.DataContext><data:MainViewModels/></Window.DataContext><Grid><Grid.RowDefinitions><RowDefinition Height="58*"/><RowDefinition Height="54*"/><RowDefinition Height="50*"/><RowDefinition Height="143*"/><RowDefinition Height="57*"/><RowDefinition Height="57*"/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="102*"/><ColumnDefinition Width="107*"/><ColumnDefinition Width="93*"/><ColumnDefinition Width="94*"/><ColumnDefinition Width="396*"/></Grid.ColumnDefinitions><TextBlock Text="端口:" IsEnabled="{Binding Input}"  Grid.Row="1"   HorizontalAlignment="Center" VerticalAlignment="Center"/><TextBlock Text="文件:" IsEnabled="{Binding Input}" Grid.Row="2"   HorizontalAlignment="Center" VerticalAlignment="Center"/><TextBlock Text="IP地址:" IsEnabled="{Binding Input}"  Grid.Row="0"   HorizontalAlignment="Center" VerticalAlignment="Center"/><TextBox  Text="{Binding Prot}"  Grid.Column="1" Grid.Row="1" Margin="0,8.5,0,8.5"/><TextBox  Text="{Binding FileUrl}" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2"  Margin="0,6.5,0,6.5"/><TextBox  Text="{Binding IP}" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="0"  Margin="0,10,0,10"/><Button  IsEnabled="{Binding Run}" Command="{Binding  StatrCommand}"  Grid.Row="4" Grid.Column="1" Content="启动" Margin="0,0,13,0"/><Button Command="{Binding StopCommand}" Grid.Row="4" Grid.Column="3" Content="停止" /><ListView ItemsSource="{Binding MainClass}"   Grid.Column="4" Grid.RowSpan="6" Margin="5"><ListView.ItemTemplate><DataTemplate><Grid Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView,AncestorLevel=1},Path=ActualWidth}" ><TextBlock  Text="{Binding  StocketSting}"/></Grid></DataTemplate></ListView.ItemTemplate></ListView></Grid>
</Window>

转载于:https://www.cnblogs.com/T-ARF/p/9933517.html

Socket 简易静态服务器 WPF MVVM模式(一)相关推荐

  1. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  2. wpf mvvm模式下CommandParameter传递多参

    wpf mvvm模式下CommandParameter传递多参 原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递 ...

  3. C# WPF MVVM模式Prism框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事 ...

  4. C# WPF MVVM模式Prism框架从零搭建(经典)

    01 - 前言 目前最新的PRISM的版本是8.1.97,本节以6.3.0.0 讲解,可以在Github上获取PRISM的源码. Prism Github地址:https://github.com/P ...

  5. WPF MVVM模式 发送DataGird表格的数据到另一个页面显示

    WPF MVVM模式 发送DataGird表格的数据到另一个页面显示 这里我们是使用Messenger消息机制把这个页面的表格行数据发送到另一个页面显示,效果如下图: 首先在这个表格页面的ViewMo ...

  6. C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...

  7. 使用WPF+MVVM模式的小案例

    WPF+MVVM模式的小案例案例主要的目录结构 下面一步一步建立整个小程序的目录和相应的代码程序. 1.打开VS, 新建项目WPFDemo.Client.CustType(自己可以写自己的程序名称,这 ...

  8. C# WPF MVVM模式下在主窗体显示子窗体并获取结果

    01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...

  9. WPF MVVM模式下的无阻塞刷新

    MVVM模式下的无阻塞刷新的两种方法: //传统模式下的无刷新调用(主线程开新线程,新线程又调用主线程来更新UI) //第1步先在线程内部计算出需要绑定的数据 //第2步然后再使用Invoke/Beg ...

最新文章

  1. IDEA运行VUE项目
  2. vue2 递归组件--树形
  3. (转) C# Async与Await的使用
  4. 组态王曲线控件读取access_组态王,历史趋势曲线控件例程说明文档
  5. ProGuard正确下载网址
  6. HDU 1054 Strategic Game(无向二分图的最大匹配)
  7. java的几个设计模式
  8. DoG算子和LoG算子
  9. 超分算法在 WebRTC 高清视频传输弱网优化中的应用
  10. 内容创业洗稿,知识付费拆书
  11. 爬虫实战 链家房源爬取(BeautifulSoup) 详细分析 2020最新
  12. 中国人工智能学会通讯——当巧妇遇到“大米”——机器翻译启示录
  13. 带你薅“云”羊毛:定个小目标,先薅他一年
  14. vfp:汉字翻译成拼音
  15. keras数据输入非常大怎么办?分批次?
  16. MacOS安装的VMware Fusion设置端口映射
  17. C/C++ 程序员的职业生涯规划,你想从事哪方面呢?这里都有介绍
  18. 如何在你的WordPress网站上添加成本计算器
  19. 关于汽车起重机远程监控若干问题的探讨
  20. linux12.040串口驱动,pci串行口驱动下载

热门文章

  1. 对数据库进行先查询后插入的解决方案
  2. Jlink-v8 灯不亮重新烧写固件的办法
  3. Mr.J-- jQuery学习笔记(三)--静态方法详解
  4. 错误的模糊应用(类继承问题)
  5. UESTC1608 暑假集训
  6. c# MODBUS协议 上位机 (转载)
  7. Cookies和Session(三)--SessionState
  8. 关于VS.NET RSACryptoServiceProvider的疑惑
  9. JAVA学生信息管理系统IO流版
  10. [Node.js] 模块化 -- express模块