用C语言写一个简单聊天软件!谢谢
展开全部 听了楼上的我都不敢说Windows程序设计中的SDK用的也是c语言了 传的是《C语言高级编程及实例剖析》中的第六章的源码,用的是SDK编程,里面拉了控件和用了多线程 楼主如果需要界面比较复杂的聊天室程序,用MFC当然方便点,但用SDK也没有太大的问题(原理是一样的,学哪一种,另一种就会了)。
后者的教程貌似很难找。
可以看看MFC的,比较好的是 《Vc++ 打造局域网聊天室》(视频) 两种资料在网上都找得到... 补充:当然,如果需要传文件,图片那些,就需要研究研究网络协议了,也只是添加些功能而已...
c/s模式只能是局域网吗
、什么是C/S和B/S 要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。
第一、什么是C/S结构。
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。
由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。
而且代价高, 效率低。
第二、什么是B/S结构。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
第三、管理软件主流技术。
管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。
首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。
其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。
二、C/S和B/S 之比较 C/S和B/S是当今世界开发模式技术架构的两大主流技术。
C/S是美国 Borland公司最早研发,B/S是美国微软公司研发。
目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。
这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。
1、C/S架构软件的优势与劣势 (1)、应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)、数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。
在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
(3)、C/S架构的劣势是高昂的维护成本且投资大。
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务...
Linux下的socket是怎么回事,如何利用其实现局域网内的数据处理?
//服务端server.c#include #include #include #include #include #include #include #include #define SERVPORT 6000 /*服务器监听端口号 */#define BACKLOG 10 /* 最大同时连接请求数 */#define MAXDATASIZE 100main(){ char buf[MAXDATASIZE]; int sockfd,client_fd; /*sock_fd:监听socket;client_fd:数据传输socket */ struct sockaddr_in my_addr; /* 本机地址信息 */ struct sockaddr_in remote_addr; /* 客户端地址信息 */ if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket创建出错!"); exit(1); } my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVPORT); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero),8); if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind出错!"); exit(1); } if (listen(sockfd, BACKLOG) == -1) { perror("listen出错!"); exit(1); } while(1) { sin_size = sizeof(struct sockaddr_in); if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_size)) == -1) { perror("accept出错"); continue; } printf("received a connection from %s\n", inet_ntoa(remote_addr.sin_addr)); if (!fork()) { /* 子进程代码段 */ if ((recvbytes=recv(client_fd, buf, MAXDATASIZE, 0)) ==-1) { perror("recv出错!"); close(client_fd); exit(0); } buf[recvbytes] = '\0'; printf("from client Received: %s",buf); if (send(client_fd, "thanks!\n", 8, 0) == -1) perror("send出错!"); close(client_fd); exit(0); } close(client_fd); }}//客户端client.c#include#include #include #include #include #include #include #include #define SERVPORT 6000#define MAXDATASIZE 100main(int argc, char *argv[]){ int sockfd, recvbytes; char buf[MAXDATASIZE]; struct hostent *host; struct sockaddr_in serv_addr; if (argc h_addr); bzero(&(serv_addr.sin_zero),8); if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) { perror("connect出错!"); exit(1); }if (send(sockfd, "hello!\n", 7, 0) == -1) { perror("send出错!"); exit(1); } if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) ==-1) { perror("recv出错!"); exit(1); } buf[recvbytes] = '\0'; printf("Received: %s",buf); close(sockfd);}
通过putty控制linux系统是局域网的吗
能再说详细一点吗?putty可以远程控制linux系统,如果说你的linux机器配有公网的IP(你的linux服务器提供对外的服务或者访问)这样的话,并不是局域网,你通过putty也是可以操作linux系统的。
如果说你的linux系统的机器跟你自己的电脑在同一个局域网(没有防火墙限制,IP在同一段。
。
)也是可以用putty来控制linux系统的。
谢谢
详解如何正确的搭建Linux的服务器集群
展开全部 本人用的是小鸟云服务器,下面来说明下:1.2.并行技术这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备1).4台采用Pentium II处理器的PC机,每台配置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。
)3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线4).1个快速以太网(100BASE-Tx)的集线器或交换机5).1张Linux安装盘2.2 构建说明对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。
如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。
确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的 PC机上安装上一块快速以太网卡。
当然别忘了要加上附加的内存。
确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。
使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。
请确信在LINUX系统中安装了C编译器和C的LIB库。
当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。
第一台PC为你的服务器节点(拥有两块网卡的那台)。
在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行:192.168.1.1 node1 server192.168.1.2 node2192.168.1.3 node3192.168.1.4 node4编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行:node1node2node3node4$p#以下的这些配置是为了让其能使用MPICH's p4策略去执行分布式的并行处理应用。
1. 在服务器节点,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行:/mirror node1(rw) node2(rw) node3(rw) node4(rw)2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行:server:/mirror /mirror nfs rw,bg,soft 0 03. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。
MPICH的文档可在5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。
这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。
你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目录拿。
(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并)2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Z tar xovf-)3.进入mpich目录4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。
最好选择一个指定的目录来安装和配置MPICH,例如:./configure -prefix=/usr/local/mpich-1.2.05.执行:make >&make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。
你完全可以跳过这一步。
在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序:cd examples/basicmake cpiln ;s ../../bin/mpirun mpirun./mpirun ;np 4 cpi此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使用安全的服务会使得任何启动速度加快,你可以执行以下命令构建:make serv_p4(serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。
如果你有这个包,你就用以下命令可以...
高分悬赏,两台linux服务器之间的内网速度怎么测?
使用 iperf 测速:两台机器分别安装iperf其中一台机器启动服务端模式:iperf -s -p12345 -m -i 1 -u另外一台使用客户端模式发送数据:iperf -c [服务端的ip] -p12345 -i 1 -u -b 1000M通过观察数据表丢包情况,如果丢包率是0%,则可以判断内网传输速度为1000Mb/s,如果有丢包,则降低 -b 后面所接的数值,直至丢包率为0%这种方法可用于测试客户端的上传速度,具体使用可去参考iperf的使用说明下载速度测试:搭建个http服务器,dd 一个10G的文件,然后在另外一台服务器 wget 此文件,查看速度是多少即可判断下载速度。
不过下载速度是受对端机器上传速度所影响
谁能提供一个目前最强大的局域网管理工具?
局域网管理工具 局域网内的管理软件,今天上网找了下,发现还是中国人写的比较多,而且功能也越来越强大。
原理都是安装winpcap,使网卡工作在混杂模式下,然后进行相应的操作。
说不定什么时候会用到,把看到的介绍都转过来吧。
都没有测试。
1. AnyView(网络警)网络监控系统 软件简介: 是一款企业级的网络监控软件。
一机安装即可监控、记录、控制局域网内其他计算机的上网行为。
用于防止单位重要资料机密文件等的泄密;监督审查限制网络使用行为;备份重要网络资源文件。
主要功能有: 一、网络行为和内容监视: 包括:网站浏览监视、邮件收发监视、聊天行为监视、游戏行为监视、FTP监视、流量监视、自定义监视; (1)AnyView能实时记录局域网内所有用户浏览过的网页(包括网页标题、网页内容、所属网站、网页大小等),并以网页快照的形式供管理者查看; (2)AnyView能实时记录局域网内所有收发的邮件(包括POP3/SMTP协议和HTTP协议的邮件),同时检测并记录其所用的IP地址、收发时间、标题、收件人/发件人、附件、内容及邮件大小等信息。
(3)AnyView能实时监控局域网用户对各类聊天工具的使用情况,能检查出在线用户所使用的聊天工具、上下线时间等信息,并保存。
(4)AnyView能实时记录网内所有用户通过FTP协议上传下载的文件(服务地址以及内容) (5)AnyView能监视所有网络游戏行为,并可以自己定义需要监视的网络游戏; (6)AnyView能监视用户即时流量,历史流量分析和流量排行 (7)AnyView能自定义被监视的网络应用,比如BT、股票软件、FLASHGET等 二、通用的、全系列、整网络、自定义、端口级的上网行为控制 包括:网站浏览控制、邮件收发控制、聊天行为控制、游戏行为控制、自定义行为控制、端口级控制;所有的控制都可针对3层对象(一个网络、一个分组、一个电脑);都可针对指定的时段;都可针对指定的协议TCP/UDP;可通用的自由定义;全系列端口级别管理; (1)可禁止浏览所有网站、只允许浏览指定网站(白名单)、禁止浏览指定网站(黑名单) (2)可禁止收发邮件、只允许收发指定邮局(白名单)、禁止手法指定邮局(黑名单) (3)可禁止所有的聊天行为(比如QQ、MSN、ICQ、YAHOO、UC、POPO、E话通等),并可以自行增加聊天行为控制列表; (4)可禁止所有的网络游戏(比如联众、中国游戏中心等等);并可以自行增加网络游戏行为控制列表; (5)可禁止自定义控制列表,比如股票软件、BT软件等;并发起阻断; (6)可进行严格的UDP/TCP整个网络段的全系列端口级别的控制,并支持黑名单和白名单功能; 三、内容过滤功能 包括:对不需要的监视的象和行为进行过滤,忽略监视;可针对3种对象操作(一个网络、一个分组、一个电脑); (1)全部监视、不监视、只监视部分应用 (2)网站过滤白名单和黑名单功能 四、IP和MAC绑定 包括:禁止MAC地址修改、禁止所有IP地址修改、禁止部分IP地址修改;有效防止非法用户访问网络资源; 五、用户管理 包括:分组增加删除、用户名修改、锁定分组刷新、监视对象设置 (1)自动搜索局域网内的电脑,并自动解析出机器名,默认以MAC地址区分用户 (2)允许建立分组并允许刷新分组;方便管理以及权限控制; (3)允许用户名修改,方便识别和管理,分组权限移动后自然继承新分组权限; 六、其他功能。
(1)采用C/S管理模式,支持分级权限管理。
AnyView支持服务器和客户端程序分开,支持多客户连接,允许对不同控制台赋予不同的监控权限。
如果是有固定外部IP,可以远程管理和查看; (2)跨平台监控;被监控电脑也可以是Unix 、Linux 等其他操作系统; (3)不需要在被监视和管理电脑上安装任何软件,一机运行,整网管理; (4)支持拦截监视内容和配置文件的的备份、恢复;支持无限多个IP网段监视 (5)采用连接密码管理禁止非法用户连接,采用控制台密码管理禁止非法用户查看; (6)引擎作为系统服务运行在后台(如IIS一样),不需要登陆和用户干预就可监控; (7)脱机浏览监视数据功能,附带自动检测连接设备是否HUB的功能; (8)正式版安装以后,同一网段内,其他机器上的试用版不能正常运行。
2、局域网助手 LanHelper
转载请注明出处51数据库 » linux局域网聊天软件server c