摘要: 一、IP地址操作类1、IPAddress类a、在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下:IPAddress address = IPAddress.Parse(“192.168.0.1”);b、IPAddress提供4个只读字段Any用于代表本地系统可用的任何IP地址 Broadcase 用于代表本地网络的IP广播地址 Loopback 用于代表系统的回送地址 None 用于代表系统上没有网络接口其中IPAddress.Any最常用可以用来表示本机上所有的IP地址,这对于socket服务进行侦听时,最方便使用,不用对每个IP进行侦听了。 阅读全文
posted @ 2013-06-20 17:41 -112 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 开发前小笔记:Socket的通信过程服务器端:l申请一个Socketl绑定到一个IP地址和一个端口上l开启侦听,等待接受连接客户端:l申请一个socketl连接服务器(指明IP地址和端口号)服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通讯,原监听socket继续监听。Socket方法-------------------相关类------------------分析结构图:服务端: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel... 阅读全文
posted @ 2013-06-20 15:37 -112 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 问题1:解决:问题原因是本地IP没设置好在DOS窗口中输入:ipconfig获取本机地址如图:运行窗口程序输入172.22.41.45(当然,每个人机器的IP地址是不一样的本IP是示例)这样问题就解决一半了,接下来是用微软的小工具telnet如果使用过程中显示“win7里边使用telnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件?”到控制面板打开telnet服务如图:最后在DOS窗口中输入telnet172.22.41.4550001就OK了异常1:Socket已经定义为null故实例化socketWatch不需要前面再加Socket异常2:解决TextBo 阅读全文
posted @ 2013-06-20 15:16 -112 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 产生一个线程的4步骤:l编写产生线程所要执行的方法 1 void countTime() 2 3 { 4 5 DateTime begingTime = DateTime.Now; 6 7 for (int i = 0; i < 99999999; i++) 8 9 {10 11 }l引用System.Threading命名空间 using System.Threading;l实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有... 阅读全文
posted @ 2013-06-18 13:48 -112 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 有这样一个需求,一个小程序,上面有一个文本框和一个按钮,要求按下按钮时文本框里的内容从0循环变化到10000。乍一看这不就是一个循环修改字符串嘛!可是写出来一运行,就会发现点按钮的时候程序卡死!因为在同一个进程当中,代码是顺序执行的,我们同样可以让程序在初始化加载的时候就循环更新数字,结果就是循环还没执行完的时候窗口不显示,还是一种卡死的效果。一种有效的办法就是给这个循环单开辟一个线程。在按钮click事件里,开启一个新线程,Test是一个方法,这里传进的是个委托。1 Thread th = new Thread(Test);然后给这个线程定义为后台线程,让主窗体关闭时这个也关闭。1 th.I 阅读全文
posted @ 2013-06-18 12:50 -112 阅读(196) 评论(0) 推荐(0) 编辑
摘要: //简单计算器(加法): 1 private void button1_Click(object sender, EventArgs e) 2 { 3 string str1 = textBox1.Text; 4 string str2 = textBox2.Text; 5 int i1, i2;//接受值 6 if (int.TryParse(str1, out i1)) 7 { 8 MessageBox.Show("第一个数... 阅读全文
posted @ 2013-06-16 14:13 -112 阅读(334) 评论(0) 推荐(0) 编辑
摘要: string可以看做是char的只读数组。charc=s[1];。例子:遍历输出string中的每个元素。C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用newstring(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。常见疑问:谁说字符串不可变?string s = & 阅读全文
posted @ 2013-06-12 10:38 -112 阅读(193) 评论(0) 推荐(0) 编辑
摘要: namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。如果代码和被使用的类在一个namespace则不需要using。在不同命名空间下的类调用有两种方法:写全称命名空间.类名先using引用命名空间,再调用不在同一个命名空间下的类,不能直接访问。要想访问别的命名空间下的类有两种方法:1)通过using引用对方的命名空间2)写全称命名空间名.类名//TestNameSpace.TestClasst=newTestNameSpace.TestClass();usingSystem根命名空间(命名空间下可以包含其他命名空间)常用namespaceSystem.Threading 阅读全文
posted @ 2013-06-11 17:32 -112 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1、什么是构造方法?首先,它是一个方法,它是类中 众多方法中的一个。其次,它具有类中其他方法所不具备的一些特性。简单来说,它是一个有着特殊使命的方法,他的绰号叫构造。2、构造方法相对其他方法有哪些不同?方法名:类中普通的方法可以根据代码书写者的个人喜好任意取名。但是,构造方法不可以。构造方法的名字必须与类名相同。换句话说,当类中的一个方法名与类名相同时,C#即认为此方法为类的构造方法。执行顺序:类中的普通方法是在类实例化之后被调用执行的,而构造方法则是在类实例化之前执行的。可以简单理解为:当准备创建一个类的实例时,首先会执行构造方法,然后在进行类的实例化。如以下代码ClassName objN 阅读全文
posted @ 2013-06-10 01:59 -112 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 项目小分析:(技巧:方便代码修改调试,把多次用到的功能块写成方法)实现思路:绘制文本界面定义名称数组使用while循环判断帐号是否为空、是否重复写地图方法,对游戏关卡进行初始化画地图DrawMap:(图如下:)实现过程中运用到的小技巧:定义控制台颜色:Console.ForegroundColor=ConsoleColor.Yellow; // Console.ForegroundColor公共属性=ConsoleColor.Yellow枚举;恢复默认颜色:Console.ResetColor();等待用户输入字符,且获取到用户输入字符后不显示在控制台上:Console.ReadKey(tru 阅读全文
posted @ 2013-06-06 16:57 -112 阅读(255) 评论(0) 推荐(0) 编辑