摘要:
基于Socket服务器端实现本例主要是建立多客户端与服务器之间的数据传输,首先设计服务器。打开VS2008,在D:\C#\ch17目录下建立名为SocketServer的Windows应用程序。打开工程,往当前窗体中添加控件,如表17-6所示。表17-6添加控件列表控 件NameTextListBoxlbInfoLabellabelButtonbutton1启动服务器设计好的界面如图17-2所示。接下来开始运用前面的知识设计服务器,主要分为以下步骤。(1)首先是对一些命名空间的包含,包括System.Net、System.Net.Sockets、System.IO和System.Thread. 阅读全文
摘要:
引言自.NET Framework 2.0 版本开始新增了一个SendFile方法,此方法可以方便的发送指定路径的文件,今天给大家演示一个利用Socket.SendFile方法发送图片的例子,希望能给刚刚接触Socket编程的朋友一些帮助,效果图:SendFile详细参数Socket.SendFile 方法 (String, Byte[], Byte[], TransmitFileOptions)使用指定的TransmitFileOptions值,将文件fileName和数据缓冲区发送到连接的 Socket对象。注意是连接的Socket对象,所以只适用于TCP协议的Socket连接。参数fil 阅读全文
摘要:
前言 委托类型的实例是存储着一个方法,并通过委托来调用那个方法,但是委托还有其他的用途。先讲一个模式:publish-subscribe(订阅-发布)它是应对这样的一个场景情形:就是把单一事件的通知广播给多个订阅者。这句话通俗一点讲的话就是:现在有方法A、B、C、D、E,自己想调用这五个方法中的全部或者部分方法。但是又不想一个一个显式的去调用,因为如果方法很多的话就会形成一个代码的堆砌,不够简洁,时间一长也不好维护。这时候有一个想法就是能有一个“方法F”来收集自己想要调用的方法就好了,最后自己只要调用“方法F”就可以调用所有自己想要调用的方法。到这边有人可能就感觉不是很自然,感觉有点陌生,没有 阅读全文
摘要:
其实只要用到Socket联接,基本上就得使用Thread,是交叉使用的。C#封装的Socket用法基本上不算很复杂,只是不知道托管之后的Socket有没有其他性能或者安全上的问题。在C#里面能找到的最底层的操作也就是socket了,概念不做解释。程序模型如下:WinForm程序 : 启动端口侦听;监视Socket联接情况;定期关闭不活动的联接;Listener:处理Socket的Accept函数,侦听新链接,建立新Thread来处理这些联接(Connection)。Connection:处理具体的每一个联接的会话。1:WinForm如何启动一个新的线程来启动Listener: //start 阅读全文
摘要:
轻松学习正则表达式【译】写在最前面前两天我从CodeProject上翻译了一篇关于Javascript的文章《Javascript中的陷阱大集合》,初次翻译技术文章,可能有很多地方需要改进,我个人觉得最好的改进办法就是继续去翻译其他文章,取长补短,积极思考,呵呵。今天翻译的这篇文章是关于正则表达式的,英文原文为Learn Regular Expressions (RegEx) with Ease。让我们来轻松学习这令人蛋疼无比的正则表达式吧。译文允许转载,转载请在页面明显处注明以下信息:英文原文:Learn Regular Expressions (RegEx) with Ease 译文作者: 阅读全文
摘要:
Java语法总结 - 内部类Java语法总结 - 内部类 从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论。其实任何优秀的语言特性用得不好就是滥用,内部类用得不好就会导致代码像迷宫一样,导致出现毫无重用的综合征。 1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。 几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。 2、成员内部类:形式如下 cla... 阅读全文
摘要:
C#参考 :ReferenceEquals, == , Equals ReferenceEquals,==,Equals比较2007年11月03日 星期六 00:15ReferenceEquals, == , Equals Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等。 a) ReferenceEqualsReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。(因为Box以后的对象总是不同的,hehe) b) ==是一个可以重载的二元操作符,可以... 阅读全文
摘要:
原文链接:Part 2: The Queue, Stack, and Hashtable本文是"考察数据结构"系列文章的第二部分,考察了三种研究得最多的数据结构:队列(Queue),堆栈(Stack)和哈希表(Hashtable)。正如我们所知,Quenu和Stack其实一种特殊的ArrayList,提供大量不同类型的数据对象的存储,只不过访问这些元素的顺序受到了限制。Hashtable则提供了一种类数组(array-like)的数据抽象,它具有更灵活的索引访问。数组需要通过序数进行索引,而Hashtable允许通过任何一种对象索引数据项。目录:简介“排队顺序”的工作进程“ 阅读全文
摘要:
C++指针探讨 (三) 成员函数指针 C语言的指针相当的灵活方便,但也相当容易出错。许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下。但不可否认的是,指针在C语言中的位置极其重要,也许可以偏激一点的来说:没有指针的C程序不是真正的C程序。 然而C++的指针却常常给我一种束手束脚的感觉。C++比C语言有更严格的静态类型,更加强调类型安全,强调编译时检查。因此,对于C语言中最容易错用 的指针,更是不能放过:C++的指针被分成数据指针,数据成员指针,函数指针,成员函数指针,而且不能随便相互转换。而且这些指针的声明格式都不一样:数据指针T*成员数据指针T::*函数指针R(*)(..... 阅读全文
摘要:
C++指针探讨 (二) 函数指针 在C/C++中,数据指针是最直接,也最常用的,因此,理解起来也比较容易。而函数指针,作为运行时动态调用(比如回调函数 CallBack Function)是一种常见的,而且是很好用的手段。 我们先简单的说一下函数指针。(这一部份没什么价值,纯是为了引出下一节的内容) 2 常规函数指针void(*fp)(); fp 是一个典型的函数指针,用于指向无参数,无返回值的函数。void(*fp2)(int); fp2 也是一个函数指针,用于指向有一个整型参数,无返回值的函数。 当然,有经验人士一般都会建议使用typedef来定义函数指针的类型,如:typed... 阅读全文