使用NDK进行网络文件传输

 想要通过网络传输文件,搜了不少代码,找到一个何意的真不容易。 Marat Bedretdinov给了一个关于聊天程序的代码,里面包含NetLib模块,对网络提供了一个很好的界面,提供了多线程和事件通知。但是很复杂,源文件就有49个,还木有时间细看。有兴趣的可以看看。

Sebastien_Lachance写了一个名为NDK (Network Development Kit 2.0) 的小工具,可以方便的开发客户服务器程序。提供了一个服务器、客户端的框架,基于MFC的CSocket的,不足的是只支持单线程,多线程也不安全。NDK隐藏了基于网络开发的复杂性,只用和3个类进行交互:CNDKServer、CNDKClient、CNDKMessage。先简单看下这些类:

CNDKServer

Attributes:

·         BOOL IsStarted() const;

·         long GetPort() const;

·         long GetNbUsers() const;

·         void GetUserIds(CLongArray& alIds) const;

Operations:

·         BOOL StartListening(long lPort);

·         void Stop();

·         BOOL SendMessageToUser(long lUserId, CNDKMessage& message);

·         BOOL SendMessageToAllUsers(CNDKMessage& message);

·         BOOL SendMessageToSomeUsers(const CLongArray& alUserIds, CNDKMessage& message);

·         BOOL SendMessageToAllUsersExceptFor(long lUserId, CNDKMessage& message);

·         BOOL SendMessageToAllUsersExceptFor(const CLongArray& alUserIds, CNDKMessage& message);

·         BOOL DisconnectUser(long lUserId);

·         void DisconnectAllUsers();

·         BOOL PingUser(long lUserId);

·         void PingAllUsers();

Callbacks:

·         virtual BOOL OnIsConnectionAccepted() = 0;

·         virtual void OnConnect(long lUserId) = 0;

·         virtual void OnMessage(long lUserId,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值