在此模式下的c/s网络编程该如何进行?请各位给点意见。

蟑螂工作室 2003-06-02 09:58:22
情况如下:c/s模式网络编程,一共有大概30个客户端(可以动态增减)。要求服务器段能够监控客户端的情况,如:是否在网上、运行情况、端口信息等,并能处理客户端的请求,如:上传、下载等并能在上传、下载过程中实现简单的文件加/解密。
请各位给点思想。有人说该采用DCom,有必要吗?
...全文
38 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
gowithme2002 2003-06-28
  • 打赏
  • 举报
回复
客户端30个已经不太适合采用多线程,因为机器超过30个线程系统性能已经严重受影响,建议采用重载CSocket类,采用消息机制,在收到OnReceive()时仅仅收取数据,然后采用专门的线程来分解数据。弊端就是客户端的掉线消息收不到,不过如果客户端程序也是你们写就好办。我们目前的处理是一定时间内没从该客户端收到数据就假设他掉线。
lemong 2003-06-26
  • 打赏
  • 举报
回复
使用多线程应该可以,客户端不是太多
danielzhu 2003-06-25
  • 打赏
  • 举报
回复
up
蟑螂工作室 2003-06-23
  • 打赏
  • 举报
回复
另外,一个c/s程序客户端小于30使用多线程+同步与异步相比,那个更好些,请有经验的朋友给点帮助。谢谢
蟑螂工作室 2003-06-23
  • 打赏
  • 举报
回复
在阻塞状态下,如果客户端或服务器端有一方断开,另一方可以自动知道吗?
在非阻塞状态下,如果客户端或服务器端有一方断开,怎样让另一方知道?
flmttm 2003-06-20
  • 打赏
  • 举报
回复
up
brightboy 2003-06-20
  • 打赏
  • 举报
回复
检测命令超时
cpluser 2003-06-13
  • 打赏
  • 举报
回复
client更改IP我测试过,只有client 端抓到FD_CLOSE 的消息(即由于更换ip造成Socket关闭),而Server根本就不触发这个消息。计算机reset的话,Server就更加不知道了!
Frank123 2003-06-12
  • 打赏
  • 举报
回复
to:junlinjd(大海、蓝天、草原、MY GOD) 只要你的机器还能容纳2万个client,就没有问题,
因为我们的在线list中,还存了用户的号码(唯一的ID号),所以当client更改IP || client更改IP || client reset,就会用新的信息代替老的信息,也就意味这server能检测到client的变化。
ISAKEEPER 2003-06-07
  • 打赏
  • 举报
回复
up
cpluser 2003-06-05
  • 打赏
  • 举报
回复
我想知道
else if(client更改IP || client更改IP || client reset)
{
server能检测到client 还在线吗?
}
likebj 2003-06-04
  • 打赏
  • 举报
回复
如果机器不多,可以在服务器定时发出广播,client接收到后把自己的信息打抱
发送给server,每台机器开机时象服务器报告自己的信息.文件加密传输是基本问题了,
skt01 2003-06-04
  • 打赏
  • 举报
回复
可以一次连接上,不需要断开,然后由服务器定时询问客户端,客户端收到后给答复(运行状态),如果客户退出,马上连接断开,服务端就会收到消息。用CAsyncSocket就可以了
fenglianghuai 2003-06-04
  • 打赏
  • 举报
回复
用命名管道很好实现
cpluser 2003-06-03
  • 打赏
  • 举报
回复
我也有类试的问题,
To wangjinwang(王进) && Frank123(Frank):

if(让client定时向server发送消息)
{
if(client数量>300)
{
Server和client建立起来的socket会占用很多网络资源吗?
}
}
else if(client更改IP || client更改IP || client reset)
{
server能检测到client 还在线吗?
}

谢谢帮助!
蟑螂工作室 2003-06-02
  • 打赏
  • 举报
回复
如果不用CSocket,则在线程中处理通讯?
什么意思?
另外,是用CSocket还是用socket api好一些?
是不是一个线程用于监听各个端口信息,以后每个客户端有请求载建立一个线程
Frank123 2003-06-02
  • 打赏
  • 举报
回复
楼上说得对。
关于是否断开,我们的实现是这样的,
在server存有每个已经登陆的client的一个生命值,让client定时向server发送消息,表明他在线,同时将server上的生命值置为最大,server定时减少生命值,如果生命值为0,则表明其client已经掉线。
孤必有邻 2003-06-02
  • 打赏
  • 举报
回复
创建一个SOCKET用于监听,一有连接请求,用其他SOCKET建立连接,(如果不用CSocket,则在线程中处理通讯)。
1 SOCKET在阻塞状态下,能自己检测出对方断开;
2 运行情况?不知所指
3 端中信息通过调用SOCKET函数取得(包括IP)
4 在线程中处理客户请求(如果使用CSocket并重载OnReceive,则在此函数中处理请求--不用线程)
5 加密、解密是代码处理的功能
johndotcom 2003-06-02
  • 打赏
  • 举报
回复
不必用dcom吧?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧