诚心请问vc网络编程与多线程编程(散分贴)
诚心请教vc网络编程与多线程编程(散分贴)
小弟正在做毕业设计,题目是物流信息平台,跟聊天室挺类似的,希
望能保证500人以上在线,希望通过毕业设计学习一下多线程编程
与网络编程.
下面是我现在设想的:
1。客户端(vc)
2。服务器端(vc)
3。数据库(mysql)
方案一:
服务器端先运行,各个客户端只与服务器端通信,服务器端与
数据库建立一个连接,所有的数据库操作都通过这个连接进行
方案二:
类似于delphi,pb,vb,.net的MIS(C/S)系统,每个客户端直接连
接到数据库,客户端操作数据库时同时通知服务器,让服务器端
更新所有客户端的显示信息.例如某个客户端发布了一条新的信息
,首先这条信息入库,同时通知服务器端有新的信息了,让服务
器给所有客户端发消息,刷新显示信息的地方
小弟在vckbase下载了很多代码,也看了一些vc网络高级编程和vc
网络协议分析与实现的代码,但是还没有清晰的设计思路,请各
位帮忙提几个解决方案
谢谢各位老大
------解决方案--------------------
其实两个方案各有好处吧
------解决方案--------------------
UP.看一下win32多线程编程 这本书
------解决方案--------------------
感觉方案一好些,数据统一处理,如果数据量大,可以在数据处理部分做多线程或多进程
------解决方案--------------------
可以把服务端到数据库的连接使用一个连接池来管理,比较好一些,也就是说把可能的500个用户数据库请求转为50个左右同时的数据库连接(单数据库服务器).
----------------------------------------------------
这个意思就是说,服务端负责维护一个到数据库的连接池。允许对服务器的访问连接数不超过一个最大数字。因为服务端同时承担着多个客户端的并发请求,如果按照请求顺序,在一个服务器链接上去依次执行,效率不高,不能充分发挥服务端和数据库的能力。如果500个客户端,每个客户端提交至少一个请求,那么服务端给每个请求都连接到数据库处理,单数据库服务器肯定不行。所以服务端起到一个调节最大同时处理请求的作用,必要的时候可以把请求缓存起来,毕竟服务端套接字的处理消耗要远少于连接数据库服务器的消耗。
------解决方案--------------------
这种传统的C/S呀三层模式是经过实践验证的可行的方案
////////////////////////////////////////////////
如果很多用户进行数据库操作,只有那么一个从服务器到数据库的连接能响应过来吗?
我之所以敢说这句话是因为它确实是千锤百炼的模式,你没学过软件工程这门课程,如果学过就知道他经典到怎么样一个层次,现在网上绝大多数的系统都在使用这个模式。
另外你提的问题也并不是这个模式的蔽端,可以通过增加辅助线程来得到解决。500个连接还远不足以使一个程序崩溃。
------解决方案--------------------
网络上还要看你用什么socket模型了,有select,WSAAsyncSelect,WSAEventSelect,IOCP模型。
还要看下这个方面的资料
------解决方案--------------------
又看到一张水贴
给楼主一点实际,不要空说。谁不会空口白话呢?
------解决方案--------------------
完成端口是不错的选择~~ 菜鸟路过
小弟正在做毕业设计,题目是物流信息平台,跟聊天室挺类似的,希
望能保证500人以上在线,希望通过毕业设计学习一下多线程编程
与网络编程.
下面是我现在设想的:
1。客户端(vc)
2。服务器端(vc)
3。数据库(mysql)
方案一:
服务器端先运行,各个客户端只与服务器端通信,服务器端与
数据库建立一个连接,所有的数据库操作都通过这个连接进行
方案二:
类似于delphi,pb,vb,.net的MIS(C/S)系统,每个客户端直接连
接到数据库,客户端操作数据库时同时通知服务器,让服务器端
更新所有客户端的显示信息.例如某个客户端发布了一条新的信息
,首先这条信息入库,同时通知服务器端有新的信息了,让服务
器给所有客户端发消息,刷新显示信息的地方
小弟在vckbase下载了很多代码,也看了一些vc网络高级编程和vc
网络协议分析与实现的代码,但是还没有清晰的设计思路,请各
位帮忙提几个解决方案
谢谢各位老大
------解决方案--------------------
其实两个方案各有好处吧
------解决方案--------------------
UP.看一下win32多线程编程 这本书
------解决方案--------------------
感觉方案一好些,数据统一处理,如果数据量大,可以在数据处理部分做多线程或多进程
------解决方案--------------------
可以把服务端到数据库的连接使用一个连接池来管理,比较好一些,也就是说把可能的500个用户数据库请求转为50个左右同时的数据库连接(单数据库服务器).
----------------------------------------------------
这个意思就是说,服务端负责维护一个到数据库的连接池。允许对服务器的访问连接数不超过一个最大数字。因为服务端同时承担着多个客户端的并发请求,如果按照请求顺序,在一个服务器链接上去依次执行,效率不高,不能充分发挥服务端和数据库的能力。如果500个客户端,每个客户端提交至少一个请求,那么服务端给每个请求都连接到数据库处理,单数据库服务器肯定不行。所以服务端起到一个调节最大同时处理请求的作用,必要的时候可以把请求缓存起来,毕竟服务端套接字的处理消耗要远少于连接数据库服务器的消耗。
------解决方案--------------------
这种传统的C/S呀三层模式是经过实践验证的可行的方案
////////////////////////////////////////////////
如果很多用户进行数据库操作,只有那么一个从服务器到数据库的连接能响应过来吗?
我之所以敢说这句话是因为它确实是千锤百炼的模式,你没学过软件工程这门课程,如果学过就知道他经典到怎么样一个层次,现在网上绝大多数的系统都在使用这个模式。
另外你提的问题也并不是这个模式的蔽端,可以通过增加辅助线程来得到解决。500个连接还远不足以使一个程序崩溃。
------解决方案--------------------
网络上还要看你用什么socket模型了,有select,WSAAsyncSelect,WSAEventSelect,IOCP模型。
还要看下这个方面的资料
------解决方案--------------------
又看到一张水贴
给楼主一点实际,不要空说。谁不会空口白话呢?
------解决方案--------------------
完成端口是不错的选择~~ 菜鸟路过