整体代码下载

主要实现功能:

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="" Width="" MinHeight="" MinWidth="" MaxHeight="" MaxWidth="">
<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="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="文件:" IsEnabled="{Binding Input}" Grid.Row="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="IP地址:" IsEnabled="{Binding Input}" Grid.Row="" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBox Text="{Binding Prot}" Grid.Column="" Grid.Row="" Margin="0,8.5,0,8.5"/>
<TextBox Text="{Binding FileUrl}" Grid.Column="" Grid.ColumnSpan="" Grid.Row="" Margin="0,6.5,0,6.5"/>
<TextBox Text="{Binding IP}" Grid.Column="" Grid.ColumnSpan="" Grid.Row="" Margin="0,10,0,10"/>
<Button IsEnabled="{Binding Run}" Command="{Binding StatrCommand}" Grid.Row="" Grid.Column="" Content="启动" Margin="0,0,13,0"/>
<Button Command="{Binding StopCommand}" Grid.Row="" Grid.Column="" Content="停止" />
<ListView ItemsSource="{Binding MainClass}" Grid.Column="" Grid.RowSpan="" Margin="">
<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>

Socket 简易静态服务器 WPF MVVM模式(一)的更多相关文章

  1. Socket 简易静态服务器 WPF MVVM模式(四)

    最重要的一个类Socket类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u ...

  2. Socket 简易静态服务器 WPF MVVM模式(三)

    ViewModels类 这个类其实就是个大杂烩,什么都可以用 这个类没有什么东西,最多的就是写一下xaml页面的逻辑控制,开启关闭监听 using System; using System.Colle ...

  3. Socket 简易静态服务器 WPF MVVM模式(二)

    command类 标准来说,command会有三种模式,委托命令 准备命令 附加命令 1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand ...

  4. WPF MVVM模式的一些理解

    /*本文转自 http://www.cnblogs.com/sirkevin/archive/2012/11/28/2793471.html */ 使用WPF+Mvvm开发一年多,期间由于对Mvvm模 ...

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

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

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

    原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递多参数,就要稍微处理一下.我暂时还没找到更好的方案,下面介绍的这 ...

  7. WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制

    原文:WPF MVVM模式中,通过命令实现窗体拖动.跳转以及显隐控制 在WPF中使用MVVM模式,可以让我们的程序实现界面与功能的分离,方便开发,易于维护.但是,很多初学者会在使用MVVM的过程中遇到 ...

  8. WPF MVVM模式下的无阻塞刷新探讨

    很多时候我们需要做一个工作,在一个方法体里面,读取大数据绑定到UI界面,由于长时间的读取,读取独占了线程域,导致界面一直处于假死状态.例如,当应用程序开始读取Web资源时,读取的时效是由网络链路的速度 ...

  9. WPF自学入门(十一)WPF MVVM模式Command命令

    在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正如上一篇文章中在开始说的,MVVM的目的是为了最大限度地降低了 ...

随机推荐

  1. docker image 转换 docker file

    这个是从每天的播报平台抓取到国外的信息发现的,感觉很实用. 博客原文,E文好的可以直接去看,https://samaritan.ai/blog/reversing-docker-images-into ...

  2. java成神之——线程操作

    线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...

  3. Android 4 学习(14):Internet Resources

    参考<Professional Android 4 Development> 使用Internet资源 打开URI String myFeed = getString(R.string.m ...

  4. 前端自动化之npm

    npm——node依赖包管理工具 安装: 1.在nvm目录下复制npm和npm-cath文件夹 2.配置环境变量. 使用: 1.在项目文件夹,shift+右键打开命令窗口 2.npm init     ...

  5. OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱

    //参照FreeImage官网给出的CTextrueManager写的加载函数 //官方给的例子是用opengl3.0以下的旧GL写的,没有使用glGenerateMipmap(GL_TEXTURE_ ...

  6. sqlplus客户端出现乱码

    查询oracle server端的字符集 select userenv('language') from dual; 修改客户端 cmd是gbk编码 环境变量 NLS_LANG 值:SIMPLIFIE ...

  7. Game Develop Books

    [Working On] [Pending] 3.<实时计算机图形学> 4.<游戏编程精粹1> 5.<游戏编程精粹2> 6.<3D游戏引擎设计:实时计算机图形 ...

  8. jQuery基础,选择器

    jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是“write Less, ...

  9. 4-拷贝我的eclipse写安卓的配置说明

    1.下载加压: 2.配置关于jdk的javahome路径,配置过eclipse的到这里就可以了,否则百度ecplise安装配置环境变量即可: 3.以安卓项目方式加入appcompat-v7; 4.每次 ...

  10. HighCharts SVN IReport进行PDF报表设计--模板

    BOS物流项目笔记第十五天 HIghcharts是很强大的图表绘制插件,它是基于纯js绘制的.当然地,对于图表也会有很多操作了.下面就我工作时遇到的一些比较常见的highcharts的操作进行小结,不 ...