网上聊天

更新时间:2024-02-15 23:55:01 阅读量: 经典范文大全 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

篇一:基于TCP协议网上聊天程序

编号:

计算机网络课程设计说明书

``

题 目: 聊天程序

系 别: 专 业: 学生姓名: 学 号: 指导教师:

2013 年 3 月 27 日

目 录

1 设计任务 .......................................................2

1.1 系统设计目标 .................................................................................................................. 2

1.2 聊天程序的功能 ............................................................................................................. 2 2 系统分析 .......................................................2

2.1系统理论基础 ................................................................................................................... 2

2.2 客户机/服务器模式 ...................................................................................................... 3

2.3 Sokect介绍 ..................................................................................................................... 4

2.4 系统开发环境 .................................................................................................................. 5

2.5 系统结构设计 .................................................................................................................. 5 3 总体设计 .......................................................5

3.1 体系结构设计 .................................................................................................................. 5

3.2 网络通信设计 .................................................................................................................. 6

3.3 模块设计 ........................................................................................................................... 8

3.31服务器 ............................................................................................................................. 8

3.32客户端 ............................................................................................................................. 9 4 详细设计 ......................................................10

4.1 设计服务器和客户端的界面 .................................................................................... 10

4.2 实现服务器和客户端通过网络通信 ....................................................................... 11

4.3 实现多个客户端之间的实时聊天功能 .................................................................. 11 5 总结 ..........................................................16 6 使用说明 ......................................................16 参考文献 .........................................................20

第 1 页 共 21 页

1 设计任务

1.1 系统设计目标

深入理解计算机网络基本原理,将书本上抽象的概念与具体的实现技术相结合,体会网络协议的设计与实现过程,以及专业技术人员所使用的基本方法和技巧。基于TCP协议网上聊天程序实现一简单的聊天程序,实现网上聊天,包括服务器和客户端。要求:

(1)支持多人聊天。

(2)客户端具有图形化用户界面。

1.2 聊天程序的功能

客户端使用简便,服务器端运行稳定。客户端与服务器端可运行在多种系统平台,具有良好的兼容性能。

客户端与服务器端功能独立,可独立运行在不同的计算机上或运行在同一台计算机上,具有最大的灵活性。

根据任课教师的要求及我自己的编程能力,写出以下的功能:

1、 登录时只需要提供用户名即可,无需输入密码。

2、 允许多人在线聊天。

3、 聊天发送的消息包括:用户名称、发送时间及正文。

4、 某用户刚登录服务器时,服务器需对其发送实时在线用户列表。

5、 某用户登录或退出程序时都需要给服务器发送一个消息以通知其他用户。

6、 能够查看聊天记录。

2 系统分析

2.1 系统理论基础

TCP/IP的特点

TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。编程时,编程界面有两种 第 2 页 共 21 页

形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。

2.2 客户机/服务器模式

C/S结构(Client/Server结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

首先服务器方要启动,并根据请求提供相应服务:

(1)打开一通信通道并告知本地主机,它在某一公认地址端口上(如http为80)接受客户请求。

(2)等待客户请求到达该端口。

(3)接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。

(4)返回第二步,等待另外的客户请求

(5)关闭服务器。

客户方:

(1)打开一通信通道,并连接到服务器所在主机的特定端口。

(2)向服务器发出服务请求报文,等待并接收应答;继续提出请求。

(3)请求结束后关闭通信通道并终止。

从上面的描述过程可知:

(1)客户与服务器进程的作用是非对称的。因此编码不同。

(2)服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到正常终止或者强迫终止。

在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请求服务响应的方式。

第 3 页 共 21 页

2.3 Socket介绍

Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,最初是由美国加州Berkley大学提出,它定义两台计算机间进行通信的规范(也是一种编程规范),如果说两台计算机是利用一个“通道”进行通信,那么这个“通道”的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP协议软件和实现了套接字规范的计算机之间的通信成为可能。

微软的Windows Socket规范(简称Winsock)对Berkley的套接字规范进行了扩展,利用标准的Socket的方法,可以同任何平台上的Socket进行通信;利用其扩展,可以更有效地实现在Windows平台上计算机间的通信。Socket减轻了编写计算机间通信软件的难度;

标准的Socket的应用程序框架如下:

Server方:Socket()[ 新建一个Socket]--Bind()[ 同服务器地址绑定 ]--Listen() --Accept()--block wait--read()[接受消息,在windows平台中,方法为send(TCP),或者是send to(UDP)]--处理服务请求--Write()[发送消息],在windows平台中,方法为send(TCP), 或者为send to(UDP)。

Client方相对简单:Socket()--Connect()[通过一定的port连接特定的服务器,这是与服务器建立连接]--Write()--Read()。

Socket可以是基于TCP的,也可以是基于UDP,同时Socket甚至建立在其他的协议,比如IPX/SPX,DECNet等。在新建一个Socket时,可以指定新建何类Socket。Bind()用来同服务器的地址绑定,如果一个主机只有一个IP地址,实际上绑定的作用就相对多余了。Listen()开始监听网络,Accept()用于接受连接,其返回值是保持同客户机联系的Socket。

在VC++ 2008中,其底层的Socket也应该是Windows的Socket。Inprise在VC++2008中对Windows Socket进行了有效的封装,使得用户可以很方便地编写网络通信程序。

Socket系统调用包括创建Socket、将创建的Socket与本地端口绑定、建立Socket连接服务器、监听是否有连接、请求数据的可控缓冲发送和可控缓冲接收,到最后关闭Socket。

首先在服务器方,利用socket()函数建立流式套接字,返回套接字号s,接着利用bind()函数将套接字s与本地地址绑定,紧接着利用listen()函数通知TCP,监听客户方,服务器准备接收连接,没有连接的话,服务器方通过closesocket()关闭套接字s,服务结束。有连接的话,在客户方,通过socket() 第 4 页 共 21 页

篇二:和网上美女聊天技巧

和网上美女聊天技巧

初期和女生聊天的话题技巧,首先要记住,和女生聊天开始后不要过多于纠缠在开场白,时机成熟了要直接切入到下一步——话题。

如何展开初期和女生聊天的话题:

初期和女生聊天的话题技巧(一)展开话题又可以分三个阶段:初级阶段,中级阶段,高级阶段。

1.初级阶段 。也就是刚认识的阶段,彼此互相还不熟悉,这个时候最好不要随便乱开玩笑,有的女生会很反感,不过适当的幽默一下还是可以的。

2.中级阶段。双方彼此慢慢开始熟悉了,知道对方是个什么样的人,可以适度的放开一点,记住,但不要太过了(特别是那种有关性的话题)点到为止就可以了,即使很开放的女生也会适应不了,因为彼此还没到很熟的阶段。

3.最后就是高级阶段也叫深入阶段。这个时候就话题的方向性和深度性也就可以加重了,因为彼此已经很熟悉了。。在她可以接受的范围之内可以适当的挑逗一下对方,开开玩笑,博取对方好感。

总结归纳, 搭讪的阶段性很重要,要循序渐进的,不可一步登天。

初期和女生聊天的话题技巧(二)话题的选择性。

很多男人都担心没有话题可聊,有的人一谈到找话题就头大,其实话题的本身不在于你聊什么,而在于你这个话题对于MM本身是否感兴趣,这个才是最重要的,只要是她感兴

趣的,任何话题都可以聊,至于怎么聊就看你的发挥了。

切记,聊天的过程中话题不要太多,不然MM会感到有压迫感,说到这里,大家不妨回头看看自己的搭讪经历,是不是发现有如下共同点,就是在感觉无话可说的时候,特别爱向MM发问,比如:

“你是做什么的?”

“你哪里人?”

“你经常来这里吗?”

“你平时喜欢什么?”

“你是自己一个人吗?

等等等等,不胜枚举,表面上看起来一问一答不亦乐乎,其实呢?

如果用面试来解释搭讪,大家立刻就明白这样的谈话是多么错误了吧——应聘者怎么可以向考官不停地发问?是人家在选择你还是你在选择人家?

这是一个很简单明显的道理,却一直为大家所忽视,根源还是因为对陌生MM的经验太少,所以会被对方表面的礼貌和客气所迷惑。结果就是在不知不觉中,你已经进入了无聊男人的黑名单。

套用理论也可以这样解释:向对方提问代表的是对她有兴趣(IOI),所以当对方没有兴趣回应,而你却依然不停发问时,就变成了自己的低价值展示了(DLV)。

完美的搭讪只提两次问题:开始一个,比如“我想认识你”或者“你吃饭了吗”;结尾一个,比如“你的电话”或者“认识一下”;中间过程要求全部是对话或者她问我答。

做到这一点其实很不容易,可一旦做到之后,你就会发现搭讪的成功率会大大提高,同时要到的也多为有效号码。

这样的目标该怎样实现呢?或者说“少问”之后如何“多说”呢?

我的建议就是联想式和发散性的思维。

因为是陌生人,彼此了解有限,所以就要及时抓住对方抛出的每一个关键词,展开话题。切忌东一榔头西一棒子,问一系列无关痛痒的问题。最终,你了解她一堆表面皮毛,她觉得你其实是个草包,OK,这个搭讪绝不会有效。下面举个例子。 。

上次我在陌陌上认识一个8分美女,经过初级阶段的聊天之后,我开始问她叫什么名字,

她很风趣的说“我叫音乐 。如果我是这样说:“音乐,你的职业是跟音乐有关吗?” 这就又犯了去提问同时放走好话题的错误。

这时对方肯定会觉得跟我聊天很无趣,老是问问题。我们聊天的本质就是让女生感觉跟我们聊天很舒服、很没有压迫感。

我是这样回答的;

”哦,音乐你好,那我叫建筑。据说建筑是凝固的音乐,音乐是流动的建筑,是不是说我一见了你我就凝固了,你一见了我你就溜走了?"(抓住对方给的机会去开玩笑,而不是生硬的、无厘头式地开玩笑) 。

初期和女生聊天的话题技巧(三)关键词法

关注聊天本身,而不是聊天话题很多人都不知道怎么和女孩聊天 往往说着说着就没有了话题 而我认为:聊天根本就不需要准备话题!

话题式聊天法:我们聊天的时候总是想要围绕着我们事先想的话题展开,而并没有关注聊天本身:于是我们经常会出现以下情况:

举例:

我:你吃饭了吗? (提出一个话题)

MM:吃了我:你在干什么呢? (又提出一个话题)

MM:上网我:你那天气好吗? (又提出一个话题) MM:还可以我:你最近忙吗? (又提出一个话题)

MM:不忙我:。。。。 (没话题可讲了,因为话题总有讲完的时候)

我:哦,这样啊,我就想打电话问问你在干什么,那你继续忙吧,拜拜

MM:拜拜

因为此时你脑子里面想的总是,我该说些什么呢?和MM聊些什么话题呢?这样往往就进入了死胡同,当你事先准备的话题说完后,你就发现,你哑巴了!

关键词法聊天:举例

我:你吃饭了吗?(提出一个话题) (关键词:吃饭 饭)

MM:吃了啊我:吃的什么啊?(由关键词 吃饭 引发 )

MM:牛肉面啊 我:你自己做的吗?(由关键词 饭 引发 )MM:我不会做饭也,买的啊 (关键词:不会做饭 买)

我:你都不会做饭嘛,一个女孩子家家,连饭都不会做,看你怎么嫁的出去(由关键词 不会做饭 引发 出现新的关键词 嫁)

MM:不想做,以前都是妈妈做的 (关键词:以前 妈妈)

我:以前是以前嘛 现在是现在 你已经长大了啊 女孩子要学会做饭的 你当人家老婆 不做饭的吗? (由关键词 以前 引发 出现新的关键词 长大 老婆 )

MM:我还没想好嫁人呢。。。(关键词 嫁人)

我:你妈妈很疼你吧 (由关键词 妈妈 引发 出现新的关键词 疼 )

MM:我妈妈很疼我的啊。我是最小的嘛 当然疼我了 (关键词:最小 )

我:你是最小的?你还有兄弟姐妹? (由关键词 最小 引发 出现新的关键词 兄弟姐妹 )

MM:我姐姐啊 BLABLABLAL。。。。(一大堆)走到这里 发现这里的关键词用的差不多了 马上返回到更早谈话时的 关键词 “嫁”,这里 可以用上层 上上层 的谈话时出现的关键词展开聊天!我:你现在还没想过要嫁给什么样的人吗? (由关键词 嫁 引发 )

MM:还没想好呢 BLABLABLAL。。。。(一大堆) (关键词:没想好)

我:那你的标准是什么呢? (由关键词 没想好 引发 )

MM:我的标准嘛是。。 BLABLABLAL。。。。(一大堆) 这个时候发现她讲的话里面没有关键词了 或者说这里的关键词不利于你展开话题 马上返回到更早谈话时的 关键词 展开聊天!例如 第6行的关键词 买

我:你喜欢买东西,喜欢去购物吗? (由更早的关键词 买 引发 出现新的关键词 购物)

MM:喜欢啊 超级喜欢的 (关键词:喜欢)

我:那你还喜欢干什么?(由关键词 喜欢 引发 )

MM:喜欢唱歌,游泳,旅游啊 (出现新的关键词:唱歌,游泳,旅游)

我:哦 你喜欢唱歌 你喜欢唱谁的歌呢?

MM:。。。。。

我:哦 你喜欢游泳 你会游泳? 你游泳技术怎么样?你一般在那游?

MM:。。。。。。。

我:哦你喜欢旅游 你都旅游过那些地方?感觉怎么样?

MM:。。。。。

不要一直在一个关键词上纠缠下去 抓住一个关键词开聊 聊到一定程度 停! 返回上一个关键词开聊 聊到一定程度 停! 返回上一个聊到一半的关键词继续聊完 停! 返回至上上一个关键词开聊 聊到一定程度 停!返回至上上上一个关键词聊。。。。。。 你会发现 在整个聊天过程中 你没有去准备什么话题 而聊天本身就会给你带来无数的话题!你不需要准备 随时随地 都可以开始聊天 你不会有压力 ,你不会去绞尽脑汁去想我该去聊什么?

因为你会有无数的话题 多到你都不知道该选择什么去聊重要的是,你有话可说,并且进入了一种良好得聊天气氛,和MM聊什么并不重要,重要得是,在这种气氛中,是好玩有趣的,互相调侃的,幽默的聊天。

当然,这一系列的啰啰嗦嗦好像并没有重点,没有营养可言,而我要说的是,这只是一个例子,让和女孩说话时只有几句话的AFC们能有话可说,不至于冷场,我也不会就一直这么问下去,这个过程应该是互动的,我只能说,这个只是一个聊天的骨架,而要让聊天有趣起来,就必须加入框架,推拉,冷读,DHV故事使其丰满起来,使聊天变得更丰富和有张力。

初期和女生聊天的话题技巧(四)聊天润滑剂——框架,推拉,冷读,DHV故事

这一部分起到的作用是锦上添花,有没有其实都无所谓,但是有了它可以使你们之间的聊天更有趣味性,少了它聊天还是可以继续,只不过会使过程变得枯燥乏味。这个就好像汽车的润滑剂,有没有虽然影响不大,但是有了它可以使机械运转的更快,更好,同时减少摩擦,起到增强性能的作用。所以这些技巧我称之为聊天的润滑剂。

1.框架。简而言之就是网上聊天过程中的虚拟气场。在聊天的过程中 女孩会自觉的给你测试 而面对女孩的测试 你该如何面对?正确的方法是,给她一个圈套 让她先跳进去 你再跳进去 她不跳,你不跳。最简单的例子

MM:我想吃火锅 你请我啊 (MM测试你)

我:好 你明天陪我逛街买衣服的话 我就请你 (不跳进她的圈套 我给她一个圈套)

篇三:网上聊天技巧——聊天最忌讳的六宗罪

网上聊天技巧——聊天最忌讳的六宗罪

1、急于表现,话题只专注于自己的事情。

之前知名把妹达人Tango在《坏男孩教你第一次怎么约会才能吸引女生》里提到过,网上聊天技巧是男女双方的一种情报交互行为,男生为了获取女生的好感,往往急于求成,大谈特谈自己的事情而忽略女生的感受。网上聊天技巧告诉我们聊天不是你一个人的单口相声。不管是聊工作聊爱好还是社会话题,在说了几句之后,都要记得委婉的引导女生开口说话。

2、对女生的提问过于笼统,导致对方难以回答,话题陷入死路。

在想要了解网上聊天技巧,了解女生的想法时,要尽可能具体的提问题,要知道女生是一种面对一个款式的衣服有三种颜色都会陷入艰难抉择的物种。所以在提问时,一定要避免问出“你平时喜欢干什么?”这类的问题。正确的做法是直接问她:“我很喜欢XXX,你喜欢吗?”这个XXX应是基于你对这个女生已有的情报或者对她的判断做出的试探性选项。 (关于如何初次见面就对女生的各个方面进行判断,我们下回再详细讲解。)

3、对于女生愿意聊的话题一无所知,无从寻找切入点。

女生和女生在一起,平时聊的无非就是衣服、化妆、剧集、男人、娱乐八卦、星座这些东西。当然,为了取悦女生而和她们聊那些女生话题会让你变成一个男闺蜜,而不是候补男友。所以你需要准备以下几个话题:

近期热门的电影(聊几部不同类型的,聊出一个她喜欢的方向,下一次约会就可以直接约看电影);

歌手、音乐、综艺类电视节目;

饮食方面的话题,新的餐厅;

旅游趣闻,理想中旅行的地点;

生活中的小趣事,可以是自己或朋友有趣见闻,也可以是道听途说自行加工的,只要有趣就行。

4、对女生说的话有不同意见时,会用长辈或领导的语气进行训导。

女生说话有时会很跳跃,也常会说一些情绪化的话,看起来像是在发牢骚。 在这个时候,不要去试图纠正她的想法,即使在你看来,那个想法是很消极的。

你可以问她为什么会那样想,问一些她所阐述的事件的细节。让她说过瘾之后,你只需要表示理解,然后转换下一个话题就好。

5、在关系不熟时,贸然聊一些涉及性和隐私的话题。

网上聊天技巧告诉我们,男生总是以为越早显露出对女生的兴趣,自己就会越有机会。恨不得什么都说。

如果你以为聊了性,女生就会和你上床,那只能说明这个女生本身只是把你当做一个YYQ

的猎物。正经女生,怀抱着找男友的想法,断然不会希望自己的男友是一个轻浮猥琐的家伙。 所以,在聊天的初始阶段,要展现你对她的尊重体贴,而不是你的欲望。

6、说话不分轻重、把毒舌当风趣,讽刺当幽默。

有的男生拿尖酸刻薄的话来调侃女生,作为一个展现自己风趣的方法。实际上大错特错,女生即使当面不发作,背后也一定会骂你不是个东西。即使你不针对她个人进行讽刺,但只要不分场合不分对象的讽刺调侃,也许就会批评到她喜欢的事物上去,引起不快。最关键的一点,显得你极度没有素质。小肚鸡肠,连一点包容力都没有。之前知名把妹达人Tango在《坏男孩教你第一次怎么约会才能吸引女生》里提到过,如果非要用讽刺调侃的毒舌方式来展现你的幽默,请把矛头对准自己,自嘲。

本文来源:https://www.bwwdw.com/article/5x2b.html

Top