社区
网络编程
帖子详情
winsock初级问题。
xhenry
2004-07-12 12:11:47
刚开始学winsock编程,使用MFC中的CSocket类,对各教材的标准例程有两问题。
问题一:为什么总是要继承一个CSocket类,然后使用派生的类来处理信息的发送、接受等操作。
问题二:当监听socket发现一个客户试图连接时,会new一个socket,然后用新的socket与客户通讯。我想知道,是不是每new一个socket实际上就是创建一个新线程?如果不是,如何保证各个socket能独立与客户通讯呢?
有关问题请各位详细解答,不胜感激!
...全文
138
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
封包入门试验程序
总的来说,这个"VB
Winsock
封包入门试验程序"是学习网络编程和
Winsock
控件的理想起点,尤其适合对网络通信感兴趣的
初级
开发者。通过实际操作,用户可以直观地了解封包的构造和发送过程,以及如何建立和维护客户端与...
一个基于
Winsock
聊天室程序源代码
描述提到这是一个“简单的聊天室程序源代码”,暗示了这是一个
初级
或中级水平的编程项目,适合学习网络编程的开发者参考。它特别指出是“很好的基础的VC网络编写代码”,这意味着源代码是用Microsoft Visual C++(VC...
VC++
初级
编程.zip
第一章 VC入门 1.1 如何学好VC 1.2 理解Windows消息机制 1.3 利用Visual C++/MFC开发Windows程序的优势 1.4 利用MFC进行开发的通用方法介绍 1.5 MFC中常用类、宏、函数介绍 ...6.3 利用
WinSock
建立有连接的通信
VB
初级
API操作源码实例大全
6. **网络通信**:
Winsock
API提供了一套低级别的网络编程接口,可以用于实现TCP/IP连接、数据传输等功能,这对于开发网络应用来说是必不可少的。 7. **定时器**:SetTimer和KillTimer函数用于设置和取消定时事件,...
Microsoft Visual Studio 2010
初级
教程
- **在网络编程方面**,C++ 通过使用
Winsock
或 Boost.Asio 等库来实现网络通信功能。 - **在多线程编程方面**,C++11 引入了标准的线程库,极大地简化了多线程程序的编写。 #### 九、文档与参考资料 - **MSDN ...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章