摘要: 上个星期,特别想写一个点对点聊天的小程序,就上网查了一下有关C#网络编程的知识,用到最多的就是TcpClient和TcpListener,使用这两个类就可以完成主机之间的通信,当然,做这个程序的过程中也用到了多线程和事件与委托,这是我第一次将这些高级特性加入到程序中,通过参考《C#和.net 3.0第一步》,我学会了如何使用事件,然后照个上面的例子写出了这个多人聊天程序。 定义一个客户端类:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Thr... 阅读全文
posted @ 2012-05-30 16:54 金河 阅读(11805) 评论(8) 推荐(1) 编辑
摘要: 当用户点击窗体右上角的叉时,有时候程序并没有实际退出。那么如何让程序结束呢? 找到窗体的FormClosing事件,在事件处理方法中添加this.close();然后程序就会自行清理资源,关闭程序; 如果写Application.Exit();仅仅是终止了消息泵,但是并不强制退出。 阅读全文
posted @ 2012-05-30 11:04 金河 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 今天打开昨天做的一个vs项目时,提示:上次加载该解决方案,打开关联文档时遇到错误。为了避免该错误,这次解决方案加载将跳过文档加载。 然后我一双击窗体对应的文件就提示 :需要调试。 网上的解决方案是:开始->所有程序->Microsoft Visual Stdio 2005->Visual Stdio Tools->Visual Stdio 2005 命令提示 这时会弹出一个命令行对话框, 输入cd..退到上一级目录, 然后 cd Common7\IDE 进入该目录后再输入devenv.exe /setup /resetuserdata /resetsettings重新初 阅读全文
posted @ 2012-05-28 09:22 金河 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: 今晚写一个聊天客户端的程序,花了很长时间设计界面,然后在我定义P2PClient类的时候用到了类TcpClient,这是一个有关收发数据的类,但是我定义项目名的时候用了TcpClient,这样在我使用类TcpClient时,vs就总是提示错误,后来在给项目重命名TCPClient,还修改项目属性中的默认命名空间和程序集名,但是仍旧报错,这是因为还有一些隐藏的地方没有修改过来,下面是修改方法。 双击主窗体,在源代码中修改命名空间为TCPClient,将对应的..Designer.cs文件中的命名空间改名为TCPClient. 源文件Program.cs中的命名空间也要修改为TCPClie... 阅读全文
posted @ 2012-05-27 21:17 金河 阅读(6876) 评论(0) 推荐(0) 编辑
摘要: 1 (1)事件,其实是一个消息.(2)如果我们自己定义事件,就必须同时定义好这个事件使用的委托,然后书写委托调用的方法。 阅读全文
posted @ 2012-05-25 17:01 金河 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1 Debug类(1)提供一组帮助调试代码的方法和属性。(2)Debug.Listeners 属性 获取监视调试输出的侦听器集合.Listeners 集合被 Debug 和 Trace 类共用;向任何一个类添加元素侦听器将会向两者同时添加。/* Create a listener that outputs to the console screen, and * add it to the debug listeners. */ TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console... 阅读全文
posted @ 2012-05-25 09:14 金河 阅读(1809) 评论(0) 推荐(0) 编辑
摘要: 首先我简单介绍一下同步TCP编程 与异步TCP编程。 1 (1)同步:在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);TcpClient tc =server.AcceptTcpClient(); 这里就一个同步接收的方式,那为什么说同步呢,因为在这个端口下如果同是来了两个客户端请求,第一个连接得到响应,与服务端建立通讯,而第二 阅读全文
posted @ 2012-05-24 17:18 金河 阅读(14103) 评论(0) 推荐(0) 编辑
摘要: 1 TcpClient类(1)TcpClient类为 TCP 网络服务提供客户端连接。(2)构造函数:TcpClient();初始化 TcpClient 类的新实例。构造函数TcpClient(AddressFamily)使用指定的族初始化 TcpClient 类的新实例。AddressFamily枚举 成员指定 Socket 用来解析地址的寻址方案。例如,InterNetwork 指示当 Socket 连接到结束点时,需要一个 IP 版本 4 地址。(3)方法Connect(IPAddress, Int32),使用指定的 IP 地址和端口号将客户端连接到 TCP 主机。(4)方法GetStr 阅读全文
posted @ 2012-05-24 15:48 金河 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 如果我成功了,我一定要对大家说,记住你当年的痛苦。现在,我很努力,但是我很痛苦,似乎我一直都很努力的学习,但是总是感觉到迷茫。基本上每周都会有一段时间特别的想学习,然后也是特别努力的学习,然后还有一段时间会特别的烦躁,感觉自己没有什么成就感,一点都没有,一直在学,没有一点效果,学着学着就没有动力了。 我现在特别痛苦,上午走到图书馆,翻了两本书,一想,现在就快期末考试了,哪有时间看课外书啊;回来了,看线程,没劲,不想看;又想,马上要交作业了,老师让交一个管理系统的程序;还有一个老师让写一篇论文;自己什么都没有做------ 痛苦啊,一定要记住自己的痛苦,就像当你记住手术时的痛苦,才会想到... 阅读全文
posted @ 2012-05-24 14:49 金河 阅读(364) 评论(1) 推荐(0) 编辑
摘要: 1 定义: 进程是一个具体的应用程序,线程是进程中的一个分支,为单独完成程序中的某一项或一组功能而存在。 应用程序可以有一个或多个进程(如有个更新程序),一个进程可以有一个或多个线程,其中一个是主线程(线程是进程中的实体,一个线程必须有一个父进程). 阅读全文
posted @ 2012-05-24 11:16 金河 阅读(159) 评论(0) 推荐(0) 编辑