熟悉VC++ 的WinSock高手,请你停一停!!!

yuejun_yu 2000-12-24 12:25:00
各位朋友:
我曾学过Unix 上的 Berkely Socket 编程,自信学得还可以。
因为那时我有一本W。Richard Stevens 写的<Unix 网络编程>这本好书。
里面有许多很好的例子程序。
现在,我用VC++ 的MFC写基于WinSock 的应用程序,遇到了
很大的麻烦,简直是痛苦不堪,因为我找不到很好的简明易懂的例子程序,
其实,我对WinSock的原理倒还是明白的,缺的就是好例子。能找到的例子
不是这里有问题,就是那里有问题,无法让人有信赖感。
就在前天,经朋友推荐我认识了CSDN这个站点,我觉得这是个好
地方。我的请求如下:
1.VC++6.0下用MFC建立的基于CAsyncSocket的Client/Server源程序。
(采用Echo形式,TCP)。
2.VC++6.0下用MFC建立的基于CAsyncSocket的广播通信源程序。(UDP)。
3.VC++6.0下用MFC建立的基于CSocket的Client/Server源程序。
(采用Echo形式,TCP)。
4.VC++6.0下用MFC建立的基于CSocket的广播通信源程序。(UDP)。
只要是能说明问题的简单的例子。
非常感谢,即使能提供的一部分,也是非常欢迎的。

my E-mail: yuejun_yu@sohu.com
...全文
228 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guanghuan 2000-12-29
  • 打赏
  • 举报
回复
我喜欢用SDK写Winsock程序。
然后新建一个线程用blocking socket模式,用得挺好。
如果用none-blocking 加消息循环会有很多不便之处。
用CSOCKET就有更多不好的地方了。
The_east_key 2000-12-29
  • 打赏
  • 举报
回复
建议您访问www.etechbase.net/tech,里面有很多资料,也许可以解决您的问题。
访问http://168.168.18.11:81/etechbase/advsearch.php将您的问题输入查询内容框,选择不同的精确程度,即可以找到你所需要的答案。效果还是可以的。
随风bj 2000-12-24
  • 打赏
  • 举报
回复
看看CSOCKET的定义,用CAsyncSocket,然后就像flywhc说的,重载OnAccept...
flywhc 2000-12-24
  • 打赏
  • 举报
回复
我觉得你的困难在于碰上了mfc,假如你用SDK编程,跟UNIX下是非常象的 -- 甚至完全一样。
我做网络编程很少用CSOCKET什么的,又慢又麻烦。
如果你非用,应该这样用:
先从CSOCKET派生一个类,重载虚函数OnAccept OnReceive ,OnSend等等,分别代表“FD_ACCEPT来时的事件”,FD_WRITE, FD_READ等等。
然后在你的程序里使用这个派生类作为成员,用它的方法,比如Bind,Connect,Send,Receive等等。
虽然很别扭,但看起来比较“OO”一些

我认为,win32与UNIX的SOCKET编程最大区别在于WIN32应该尽量用none-blocking socket,而unix尽量用blocking socket,非阻塞的在win32下很省资源,UNIX正好相反。原因是WIN32编程是基于消息循环的半协作方式,而UNIX的多进程的性能是很不错的。
zhq2000 2000-12-24
  • 打赏
  • 举报
回复
CSocket是CAsyncSocket的子类,用CAsyncSocket能完成的事都可以用CSocket完成。
MSDN中有CSocket的例子。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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