开发winsock客户端一般用什么socket模型

YaYiYaO 2005-07-26 10:47:48
现在网上、书上介绍的很多socket模型,什么重叠模型、完成端口模型...
好象都是对于server来说的
那对于客户端一般用什么模型开发呢

比如现在有个客户端,可以向服务器发数据,但是这期间也随时可能收到服务器的数据
应该这样实现
...全文
331 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaodongdehome 2005-08-24
  • 打赏
  • 举报
回复
mark!
tigal 2005-08-18
  • 打赏
  • 举报
回复
这个顶一下
windyhui 2005-08-05
  • 打赏
  • 举报
回复
如果有窗口,可以用WSAAsyncSelect
没有可以用,WSAEventSelect
这两个模型相对简单
而且完全能满足客户端的开发工作。
hyg2008 2005-07-29
  • 打赏
  • 举报
回复
UP
AntonlioX 2005-07-26
  • 打赏
  • 举报
回复
一般情况:
最简单的就是使用阻塞套节子。

稍微复杂点 控制多个套接字:
如果有窗口,可以用WSAAsyncSelect
没有可以用,WSAEventSelect

如果做服务器 处理的套接字 非常的多 使用 IOCP
zh1369 2005-07-26
  • 打赏
  • 举报
回复
客户端直接用mfc库中的类就可以吧!
CMySock :public CAsyncSocket{
//根据需要 实现 虚函数
}

CMySock m_sock;
m_sock.Create();
//一切ok
接收同时发送,都由事件通知,
这样做客户端是没有问题的.
dirdirdir3 2005-07-26
  • 打赏
  • 举报
回复
想节省时间就用CAsyncsocket写,不过socket api灵活些。
YaYiYaO 2005-07-26
  • 打赏
  • 举报
回复
是啊,是用api直接写的
WSAAsyncSelect和WSAEventSelect不都是winsock的api函数吗
txl_2002 2005-07-26
  • 打赏
  • 举报
回复
楼上正确,楼主还可以直接用API编写,可能会更灵活。
VCSQLVB 2005-07-26
  • 打赏
  • 举报
回复
如果有窗口,可以用WSAAsyncSelect
没有可以用,WSAEventSelect
oyljerry 2005-07-26
  • 打赏
  • 举报
回复
需要实时,就用非阻塞模式好了
oyljerry 2005-07-26
  • 打赏
  • 举报
回复
客户端一般用简单的模型就可以了,阻塞等
YaYiYaO 2005-07-26
  • 打赏
  • 举报
回复
像我上面说的那个例子,一个socket连接到server,能否在这一个socket上随时实现发数据和接受数据吗??
非常不错,c#入门经典哦! 关于socket的,适合初学者。 #socket编程基础 Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要 --从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。 抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3个层次:请求/响应层、应用协议层、传输层。 WebReqeust和WebResponse 代表了请求/响应层,支持Http、Tcp和Udp的类组成了应用协议层,而Socket类处于传输层。 传输层位于这个结构的最底层,当其上面的应用协议层和请求/响应层不能满足应用程序的特殊需要时,就需要使用这一层进行Socket套接字编程。 而在.Net中,System.Net.Sockets 命名空间为需要严密控制网络访问的开发人员提供了 Windows Sockets (Winsock) 接口的托管实现。System.Net 命名空间中的所有其他网络访问类都建立在该套接字 Socket实现之上,如TCPClient、TCPListener 和 UDPClient 类封装有关创建到 Internet 的 TCP 和 UDP 连接的详细信息;NetworkStream类则提供用于网络访问的基础数据流等,常见的许多 Internet服务都可以见到Socket的踪影,如Telnet、Http、Email、Echo等,这些服务尽管通讯协议Protocol的定义不同,但是其基础的传输都是采用的Socket。 其实,Socket可以象流Stream一样被视为一个数据通道,这个通道架设在应用程序端(客户端)和远程服务器端之间,而后,数据的读取(接收)和写入(发送)均针对这个通道来进行。 可见,在应用程序端或者服务器端创建了Socket对象之后,就可以使用Send/SentTo方法将数据发送到连接的Socket,或者使用Receive/ReceiveFrom方法接收来自连接Socket的数据; 针对Socket编程,.NET 框架的 Socket 类是 Winsock32 API 提供的套接字服务的托管代码版本。其中为实现网络编程提供了大量的方法,大多数情况下,Socket 类方法只是将数据封送到它们的本机 Win32 副本中并处理任何必要的安全检查。如果你熟悉 Winsock API函数,那么用Socket类编写网络程序会非常容易,当然,如果你不曾接触过,也不会太困难,跟随下面的解说,你会发觉使用 Socket开发windows 网络应用程序原来有规可寻,它们在大多数情况下遵循大致相同的步骤。

18,356

社区成员

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

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