社区
网络编程
帖子详情
winsock初级问题。
xhenry
2004-07-12 12:11:47
刚开始学winsock编程,使用MFC中的CSocket类,对各教材的标准例程有两问题。
问题一:为什么总是要继承一个CSocket类,然后使用派生的类来处理信息的发送、接受等操作。
问题二:当监听socket发现一个客户试图连接时,会new一个socket,然后用新的socket与客户通讯。我想知道,是不是每new一个socket实际上就是创建一个新线程?如果不是,如何保证各个socket能独立与客户通讯呢?
有关问题请各位详细解答,不胜感激!
...全文
136
11
打赏
收藏
winsock初级问题。
刚开始学winsock编程,使用MFC中的CSocket类,对各教材的标准例程有两问题。 问题一:为什么总是要继承一个CSocket类,然后使用派生的类来处理信息的发送、接受等操作。 问题二:当监听socket发现一个客户试图连接时,会new一个socket,然后用新的socket与客户通讯。我想知道,是不是每new一个socket实际上就是创建一个新线程?如果不是,如何保证各个socket能独立与客户通讯呢? 有关问题请各位详细解答,不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iorikingdom
2004-07-12
打赏
举报
回复
第一:你要对具体问题,才能够构造出你所需要的类,所以要派生
第二:每个端口都可以处理不同的客户
stormding
2004-07-12
打赏
举报
回复
当一个网络事件发生时,通过MFC的信息结构,就可以由CAsynsSocket或CSocket的Callback function按照事件来处理.最常用的有OnReceive(),OnSend(),OnAccept(),OnConnect(),OnClose()等函数,它们分别在收到信息时,发送时,侦听时,连接时,关闭时触发.
每个用户做网络要求都不同,当然会重写这些信息处理.
zhaolaoxin
2004-07-12
打赏
举报
回复
CSocket只完成公用的操作,没有你自己想要的代码,所以继承后补充自己的东西。
第二个问题正如你所说的那样。
ytssu
2004-07-12
打赏
举报
回复
这要看你在哪儿new,比如在C**app的InitInstance中new,那么就要等到
整个程序结束是销毁。
PiggyXP
2004-07-12
打赏
举报
回复
如果每次new一个新的socket就是开了一个新的线程,那么这个线程如何结束(何时)?
==============================================================================
每次新开的监听线程,是需要你手动想办法结束的
danielzhu
2004-07-12
打赏
举报
回复
看看深入浅出MFC,就明白了
xhenry
2004-07-12
打赏
举报
回复
to difa:你需要的是一个控件,VB中包含一个WinSock的控件,可以设置监听的端口号,然后如果有接收到数据就会触发一个Receive的事件。具体内容可查看MSDN中的VB控件参考部分。
difa
2004-07-12
打赏
举报
回复
有不有使用VC Csoket作DLL的,用户操作介面只提供如下:
int InitSocket(...);
int Send(...);
int Receive(...);
int CloseSocket(...);
......
这样可供VB,等其它调用。
请问,你样可行吗,见网上有这样的例子吗??
xhenry
2004-07-12
打赏
举报
回复
to PiggyXP:我也想从winsocket api开始,可现在是维护一个老程序,没办法。
还有几个问题:
通常从CSocket派生的类会在OnReceive过程中调用窗口中的一个方法(在这个方法类中中读取实际接收到的数据),如果该窗口正好打开一个新的模式窗口,是否回阻塞数据的接收?
如果每次new一个新的socket就是开了一个新的线程,那么这个线程如何结束(何时)?是不是客户连接一断开就自动结束?还需要我delete它吗?
PiggyXP
2004-07-12
打赏
举报
回复
其实我觉得楼主不如从基本的纯socket api学起
会让你对socket的机制理解得更为透彻
------ 纯属个人意见,视个人喜好而定:)
PiggyXP
2004-07-12
打赏
举报
回复
1. 如果只是简单的操作,就没有必要从CSocket派生自己的类了,CSocket类中带有的成员函
数完全可以完成需要的功能。
2。是这样的,其实如果你不用MFC的CSocket类,自己用纯socket api来编程的话会对这个问
题理解得更为透彻^_^
还有什么问题欢迎你来网络版继续讨论^_^
VB
Winsock
封包入门试验程序
主要是入门用了,很简单 功能主要演示了 客户端和服务端相互对话, 通过发送封包打开百度网页等等操作 本人,
初级
阶段呀, 正在这个基础上努力,呼呼!
一个基于
Winsock
聊天室程序源代码
一个简单的聊天室程序源代码!基于
Winsock
,很好的基础的VC网络编写代码!
VC++
初级
编程.zip
第一章 VC入门 1.1 如何学好VC 1.2 理解Windows消息机制 1.3 利用Visual C++/MFC开发Windows程序的优势 1.4 利用MFC进行开发的通用方法介绍 1.5 MFC中常用类、宏、函数介绍 第二章 图形输出 2.1 和GUI有关的各种对象 2.2 在窗口中输出文字 2.3 使用点、刷子、笔进行绘图 2.4 在窗口中绘制设备相关位图、图标、设备无关位图 2.5 使用各种映射方式 2.6 多边形和剪贴区域 第三章 文档视结构 3.1 文档 视图 框架窗口间的关系和消息传送规律 3.2 接收用户输入 3.3 使用菜单 3.4 文档、视、框架之间相互作用 3.5 利用序列化进行文件读写 3.6 MFC中所提供的各种视类介绍 第四章 窗口控件 4.1 Button 4.2 Static Box 4.3 Edit Box 4.4 Scroll Bar 4.5 List Box/Check List Box 4.6 Combo Box/Combo Box Ex 4.7 Tree Ctrl 4.8 List Ctrl 4.9 Tab Ctrl 4.A Tool Bar 4.B Status Bar 4.C Dialog Bar 4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar 4.E General Window 4.F 关于WM_NOTIFY的使用方法 第五章 对话框 5.1 使用资源编辑器编辑对话框 5.2 创建有模式对话框 5.3 创建无模式对话框 5.4 在对话框中进行消息映射 5.5 在对话框中进行数据交换和数据检查 5.6 使用属性对话框 5.7 使用通用对话框 5.8 建立以对话框为基础的应用 5.9 使用对话框作为子窗口 第六章 网络通信开发 6.1
WinSock
介绍 6.2 利用
WinSock
进行无连接的通信 6.3 利用
WinSock
建立有连接的通信
VB
初级
API操作源码实例大全
VB
初级
API操作源码实例大全,重新整理 内含最新api函数集及实例
Microsoft Visual Studio 2010
初级
教程
本人阅读了此文档受益匪浅,所以转载,向原作者表示感谢!【作者语:Microsoft Visual Studio 2010
初级
教程,主要是 C++的,由于icrosoft VisualStudio 2010 刚推出不久,也没有多少相关的资料,特整理和收集了网上相关的不多的珍贵的文章,希望对大家学习 VS2010 有所帮助,请大家珍惜原作者的版权。 】
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章