代码改变世界

随笔档案-2011年12月2日

C# Socket聊天程序(一个服务端,多个客户端)

2011-12-02 23:10 by Andrew.Wangxu, 8450 阅读, 收藏,
摘要: 这是一个多用户聊天的socket程序 文件分别是两部分: 1.服务端 2.客户端 --------------------------------------------------- 使用方法:在一台电脑中挂起一个 服务端程序。 其他电脑即可开启客户端进行相互聊天(所有客户端之间); 在客户端与服务端的‘启动程序’目录下都有一个:ServerIPAndPort.txt 文本用于配置IP地址与端口 如局域网配置(服务端与客户端配置一致):192.168.X.X:8885 既你的本机局域网IP地址 外网配置:服务端配置为192.168.X.X:8885 即可,而客户端需要配置为 服务端的外网IP。 阅读全文

C# 向二进制文件进行读写操作

2011-12-02 23:04 by Andrew.Wangxu, 1821 阅读, 收藏,
摘要: 在这个例子中,使用BinaryWriter对象的Write方法向文件写入Double类型的变量 aDouble 时,由于参数是Double类型,因此调用Write(Double)的重载形式,向文件流写入一个固定长度为8字节的浮点类型数据。与此对应,读取该数据时,采用ReadDouble()方法从当前流中读取8字节浮点值。 当写入Int32 类型的变量 aInt 时,系统自动调用Write(Int32) 方法,向文件流中写入4 字节有符号整数,读取数据时,调用ReadInt32()方法,从文件流中读取4字节长度的数据。 阅读全文

C# 使用 StreamReader 读取数据

2011-12-02 22:58 by Andrew.Wangxu, 1044 阅读, 收藏,
摘要: 下面是关于StreadReader的使用例子。 用来读取TXT文本数据... 阅读全文

C# FileStream Write追加写入文本

2011-12-02 22:52 by Andrew.Wangxu, 1479 阅读, 收藏,
摘要: 该例子为追加 C盘中的 file1.txt 的文本内容 完整代码如下: 引入命名空间: using System.IO; 阅读全文

C# FileStream 按大小分段读取文本内容

2011-12-02 22:49 by Andrew.Wangxu, 735 阅读, 收藏,
摘要: 该例子首先在C盘根目录创建一个名为’file1.txt‘的文本文件。 然后再运行该例子。。 完整代码如下: 引入命名空间: using System.IO; 阅读全文

C# Socket简单例子(服务器与客户端通信)

2011-12-02 22:45 by Andrew.Wangxu, 3137 阅读, 收藏,
摘要: 这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信。 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序。在这个例子中,实际上还有很多问题没有解决,如消息边界问题、端口号是否被占用、消息命令的解析问题等。。 下面是两个程序的代码,(两个程序均为控制台程序) 阅读全文

C# 网络数据编码与解码(Encoder and Decoder)

2011-12-02 22:31 by Andrew.Wangxu, 1209 阅读, 收藏,
摘要: 该例子为在C#中对网络数据编码与解码。 引用《网络应用编程(第二版)》49页的前面的话如下: 在网络通信中,很多情况下通信双方传达的都是字符信息。但是,字符信息并不能直接从网络的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列后才能在网络中传输。将字符序列转换为字节序列的过程称为编码。当这些字节传送到网络的接收方时,接收方需要反过来将字节序列再转换为字符序列,这种过程称为解码。 阅读全文

C# Ping类的例子,可用于测试网络,主机响应时间等。

2011-12-02 22:28 by Andrew.Wangxu, 2326 阅读, 收藏,
摘要: 该例子为利用Ping类检测与主机之间的通信是否正常。。延迟多少毫秒等。。 完整代码如下: 引入命名空间: using System.Net.NetworkInformation; ..... 阅读全文

C# IPGlobalStatistics获取本机网络流量信息

2011-12-02 22:08 by Andrew.Wangxu, 1196 阅读, 收藏,
摘要: lst_NetworkInfo.Items.Add("本机所在域:" + properties.DomainName); lst_NetworkInfo.Items.Add("接收数据包:" + ipstat.ReceivedPackets); lst_NetworkInfo.Items.Add("转发数据包:" + ipstat.ReceivedPacketsForwarded); lst_NetworkInfo.Items.Add("传送数据包:" + ipstat.ReceivedPacketsDelivered); lst_NetworkInfo.Items.Add("丢弃数据包:" + ipstat.ReceivedPacketsDiscarded); 阅读全文

C# 代码执行效率(耗时) - 毫秒

2011-12-02 09:59 by Andrew.Wangxu, 780 阅读, 收藏,
摘要: DateTime start = DateTime.Now; //一些有趣的耗时的代码... TimeSpan spn = DateTime.Now - start; MessageBox.Show("耗时:"+spn.ToString());虽然简单,简单的反而容易忘记。记一笔。参考:http://www.wxzzz.com/?id=25 阅读全文

C# 获取本机网卡信息、个数、描述信息、类型、速度等

2011-12-02 01:19 by Andrew.Wangxu, 792 阅读, 收藏,
摘要: //显示网络适配器描述信息、名称、类型、速度、MAC 地址 lst_NetworkAdapter.Items.Add("---------------------第" + index + "个适配器信息---------------------"); lst_NetworkAdapter.Items.Add("描述信息:" + adapter.Name); lst_NetworkAdapter.Items.Add("类型:" + adapter.NetworkInterfaceType); lst_NetworkAdapter.Items.Add("速度:" + adapter.Speed / 1000 / 1000 + "MB"); lst_NetworkAdapter.Items.Add("MAC 地址:" + adapter.GetPhysicalAddress()); 阅读全文

C# 获得本机IP、端口等信息地址以及服务器IP信息

2011-12-02 01:17 by Andrew.Wangxu, 581 阅读, 收藏,
摘要: lst_HostIPInfo.Items.Add("IP端点:" + iep.ToString()); lst_HostIPInfo.Items.Add("IP端口:" + iep.Port); lst_HostIPInfo.Items.Add("IP地址:" + iep.Address); lst_HostIPInfo.Items.Add("IP地址族:" + iep.AddressFamily); lst_HostIPInfo.Items.Add("可分配端口最大值:" + IPEndPoint.MaxPort); lst_HostIPInfo.Items.Add("可分配端口最小值:" + IPEndPoint.MinPort); 阅读全文

C# 使用BackgroundWorker例子及注意点

2011-12-02 01:15 by Andrew.Wangxu, 439 阅读, 收藏,
摘要: 该例子在 Backgroundworker 组件的辅助线程上随机产生整数,辅助线程运行DoWork事件处理程序,当产生能被5整除的整数时,使用ProgressChanged事件把整数显示到窗体上。程序执行到 RunWorkerAsync 方法时,将启动后台线程。 在Dowork事件中,如果应用程序没有取消后台操作,将不停的产生随机整数,然后判断该整数能否被5整除,如果能被5整除,执行work.ReportProgress方法来触发 ProgressChanged 事件,在 ProgressChanged 事件中与界面长须打交道,把生产的随机整数显示到窗体上。 阅读全文

C#多线程Lock锁定的使用例子(多线程线程同步)

2011-12-02 01:13 by Andrew.Wangxu, 566 阅读, 收藏,
摘要: 这个例子是一个模拟多个人在多台提款机上同时提取一个账户的款的情况。 在存取的过程中 可能 A线程取了100 而B线程那边还看见账户上没少掉那100快,所以导致数据不统一,赋值出现问题。 下面代码则可以测试出加上Lock锁定 与 不加的区别。 阅读全文

C# 一个简单的多线程例子

2011-12-02 01:07 by Andrew.Wangxu, 467 阅读, 收藏,
摘要: 实现功能主要是在一个窗体中利用2个线程来执行 a 与 b 字符的追加 一个是窗体代码 一个是class代码。 直接上代码了,先来窗体的吧。 阅读全文

C# 启动与停止进程

2011-12-02 01:04 by Andrew.Wangxu, 558 阅读, 收藏,
摘要: 也是书中《C#网络应用编程》的一章。方便日后翻用。 该例子为 notepad.exe (记事本)程序的启动与结束 阅读全文

C# 进程监控器

2011-12-02 01:02 by Andrew.Wangxu, 933 阅读, 收藏,
摘要: 学习《C#网络应用编程》的一个开始,在博客上记录下源码以便日后翻用。 实现对当前进程的详细信息进行监视。 阅读全文

在winForm窗体上加上DialogResult作为返回值

2011-12-02 00:59 by Andrew.Wangxu, 1333 阅读, 收藏,
摘要: 例子: 在A窗体【按钮】弹出 B窗体 并且当B窗体关闭时判断是【确定】还是【取消】 则可以在B窗体上加上DialogResult返回值。 然后A窗体再进行判断。 阅读全文

窗体之间调用方法,参数等。(传窗体引用)

2011-12-02 00:56 by Andrew.Wangxu, 350 阅读, 收藏,
摘要: 以下代码实现 B窗体调用A窗体的方法。 其实就是传 this 窗体A... 阅读全文

一串字字符中多个逗号转换为一个,既标准分隔符(正则表达式)

2011-12-02 00:53 by Andrew.Wangxu, 905 阅读, 收藏,
摘要: 借助上一篇文章正则表达式快速入门,来完成了这个转换过程。 需求如下: 将一串字符转换为标准的分隔符字符串 如:",,,,a,svv,ss,,v,,v,,," 转换后:"a,svv,ss,v,v" 实现方法如下: 阅读全文