木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java5年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql5年进入店铺

随笔分类 -  WinSocket

摘要:使用原始套接字:SOCK_RAW需要ICMP代码如下:#include #include using namespace std; #pragma comment(lib, "WS2_32.lib") typedef struct icmp_hdr{ unsigned char icmp_type; unsigned char icmp_code; unsigned short icmp_checksum; unsigned short icmp_id; unsigned short icmp_sequence; unsigned long icmp_timnestamp; 阅读全文
posted @ 2013-07-24 10:46 程序流程图 阅读(997) 评论(0) 推荐(0) 编辑
摘要:#include #include using namespace std; #pragma comment(lib, "WS2_32.lib") typedef struct _SOCKET_OBJ{ SOCKET s; HANDLE event; sockaddr_in addrRemote; _SOCKET_OBJ *pNext; }SOCKET_OBJ, *PSOCKET_OBJ; typedef struct _THREAD_OBJ{ HANDLE events[WSA_MAXIMUM_WAIT_EVENTS]; int nSocketCount; PSOCKE. 阅读全文
posted @ 2013-07-20 16:57 程序流程图 阅读(381) 评论(0) 推荐(0) 编辑
摘要:完成例程是Win Sockets提供的另一种管理完成的重叠I/O方法,完成例程是一个函数,当发起重叠操作时,将该函数传递给发起操作的函数,当重叠IO操作完成时由系统调用。下面来看一下例程必须拥有下面的函数原型:void CALLBACK CompletionROUTINE{ IN DWORD dwError, //重叠操作的完成状态。 IN DWORD cbTransferred, //实际传输的字节数。 IN LPWSAOVERLAPPED lpOVerlapped, //初始化重叠操作的那个重叠结构 IN DWORD ... 阅读全文
posted @ 2012-09-20 18:29 程序流程图 阅读(541) 评论(0) 推荐(0) 编辑
摘要:winsock2 中引入了重叠I/O(Overlapped I/O)的概念并且要求所有的传输协议提供者都支持这一功能。 他的功能高于前面我们提过的三种,但是最强悍的还是我们后面要说的完成端口。基本原理:让应用程序使用一个重叠的数据结构,一次投递一个活多个winsock I/O请求,针对那些提交的清酒,在他们完成之后,应用程序可为他们提供服务。 应用程序可通过ReadFile和WriteFile两个函数执行I/O操作。 要注意:重叠I/O仅能在由WSASocket函数打开的套接字上使用。要想在一个套接字上使用重叠I/O,首先必须使用 WSA_FLAG_OVERLAPPED 这个标志。SOCKET 阅读全文
posted @ 2012-09-02 21:16 程序流程图 阅读(500) 评论(0) 推荐(0) 编辑
摘要:WSAEventSelect模型是类似于WSAAsyncSelect模型的另一个有用的异步I/O模型。它允许应用程序在一个或者多个套接字上接收以事件为基础的网络事件。 在这里,最主要的差别是在于网络事件会投递到一个事件对象句柄。并不是投递到一个窗口。我们使用事件模型前,我们的应用程序针对使用的每一个套接字首先要创建一个事件对象:WSAEVENT WSACreateEvent(void);下面是注册自己感兴趣的网络事件类型:int WSAEventSelect( _In_ SOCKET s, //代表感兴趣的套接字 _In_ WSAEVENT hEventObject,//指... 阅读全文
posted @ 2012-09-02 16:49 程序流程图 阅读(505) 评论(0) 推荐(0) 编辑
摘要:大家用这个模型,可以让应用程序在一个套接字上接收以windows消息为基础的网络事件通知。我们想要用这个操作,具体的做法就是我们建立一个套接字,然后调用WSAAsyncSelect函数, 也就是说,这个模型的核心就是我们的这个函数;来看一下函数原型:int WSAAsyncSelect( _In_ SOCKET s,//我们感兴趣的套接字 _In_ HWND hWnd,//窗口的句柄,对于网络事件繁盛后,想要接收到的通知的那个窗口 _In_ unsigned int wMsg,//指定在发生网络事件时,打算接收的消息。 _In_ long lEvent//指定一个位掩... 阅读全文
posted @ 2012-09-02 13:24 程序流程图 阅读(378) 评论(0) 推荐(0) 编辑
摘要:好久没有用MFC 来写代码了,手都生疏了,悲剧啊,好多API 都去查的 哎~~~好了 下面把 我们聊天室的代码贴出:select函数封装:BOOL CserverDlg::Select_Server(SOCKET sock, int nTime /* = 100 */, BOOL bRead /* = TRUE */) { fd_set fdset; timeval tv; FD_ZERO(&fdset); FD_SET(sock, &fdset); nTime = nTime > 1000 ? 1000 : nTime; tv.tv_sec = 0; tv.tv_use 阅读全文
posted @ 2012-08-28 13:08 程序流程图 阅读(588) 评论(0) 推荐(0) 编辑
摘要:select模型在五中模型中是最简单,最容易实现的,当然他的效率当然不如其他四种;select可以去监视一个套接字,看哪个socket有消息到来;int select( _In_ int nfds,//忽略 _Inout_ fd_set *readfds,//一个用于检测可读性的参数 _Inout_ fd_set *writefds,//检查可写性 _Inout_ fd_set *exceptfds,//用于例外数据 _In_ const struct timeval *timeout//最大等待时间 );来看一下fd_set:typedef str... 阅读全文
posted @ 2012-08-22 20:48 程序流程图 阅读(631) 评论(0) 推荐(0) 编辑
摘要:注:本文部分转载一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~一:select模型老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信 ~~~~~在这种情况下,"下楼检查信箱" 然后回到楼上耽误了老陈太多的时间 阅读全文
posted @ 2012-08-22 14:43 程序流程图 阅读(517) 评论(0) 推荐(0) 编辑
摘要:前面说了那么多,现在我们给出4个代码+详解,基于win32平台的socket编程。使用TCP 和 UDP 两种协议。OK,先来看一下TCP服务器和客户端:/************************************************** 文件名server.cpp windows下socket网络编程实例 -- 服务器端基于TCP 服务器地址:'127.0.0.1' 端口号 8888 作者:peter ***************************************************/ #include #include #pragma 阅读全文
posted @ 2012-08-15 15:12 程序流程图 阅读(308) 评论(0) 推荐(0) 编辑
摘要:前面两篇看socket的入门一些知识还有一些常用的API,现在来解释一些概念,还有就是tcp和udp客户端服务器基本模式!阻塞和非阻塞套接字可以处于阻塞模式或者非阻塞模式,调用任何一个阻塞模式的函数都会产生同样的结果。(用或长或短的时间等待操作的完成) 当套接字处于非阻塞模式的时候,API函数的调用会立即返回,但是大多会失败,返回WSAEWOULDBLOCK错误。意味着请求操作在调用期间没有时间完成。举个例子,阻塞就是当你拨打我的电话的时候,我不在,于是你拿电话等我回来,这期间不能再用电话了。非阻塞就是你拨打我的电话,但是我不在,这时你挂断了电弧啊,待会再打,至于我是不是在,只有打了电话才知. 阅读全文
posted @ 2012-08-15 15:12 程序流程图 阅读(553) 评论(0) 推荐(0) 编辑
摘要:套接字API函数:1、socket函数:Thesocketfunction creates a socket that is bound to a specific transport service provider.2、bind函数:Thebindfunction associates a local address with a socket.(一般用于服务器)3、listen函数:Thelistenfunction places a socket in a state in which it is listening for an incoming connection.(一般用于服务 阅读全文
posted @ 2012-08-15 11:47 程序流程图 阅读(362) 评论(0) 推荐(1) 编辑
摘要:Winsock是Windows下的网络编程接口,它是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口。 Winsock在常见的Windows平台上有两个主要的版本,即Winsock1和Winsock2。编写与Winsock1兼容的程序你需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,则需要引用WINSOCK2.H此外还有一个MSWSOCK.H头文件,它是专门用来支持在Windows平台上高性能网络程序扩展功能的。使用WINSOCK.H头文件时,同时需要库文件WSOCK32.LIB,使用WINSOCK2.H时,则需要WS2_32.LIB,如果使用. 阅读全文
posted @ 2012-08-14 20:22 程序流程图 阅读(820) 评论(0) 推荐(1) 编辑

木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java5年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql5年进入店铺
点击右上角即可分享
微信分享提示