
网络编程
劉俊
这个作者很懒,什么都没留下…
展开
-
Windows网络编程附书代码(简单的服务器与客户端)
//程序清单6-1 回应服务器代码// 编译命令Compile:cl -o Server Server.c ws2_32.lib//// 命令行选项:// server [-p:x] [-i:IP] [-o]// -p:x 监听的端口号// -i:str 监听的网卡// -o 只接收,不回显数据//#include #include #inc转载 2012-01-29 16:06:14 · 5074 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔记----重叠(Overlapped)I/O模型
重叠(Overlapped) I/O模型与介绍过的其他模型相比,重叠I/O模型提供了更好的系统性能。这个模型的基本设计思想是允许应用程序使用重叠数据结构一次投递一个或者多个异步I/O请求(即所谓的重叠I/O)。提交的I/O请求完成之后,与之关联的重叠数据中事件对象触发,应用程序便可使用WSAGetOverlappedResult函数获取重叠操作的结果。这和使用重叠结构调用ReadFile和Wr原创 2013-05-05 16:19:02 · 1278 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔记----WSAEventSelect模型
WSAEventSelect模型Winsock提供另一种有用的异步事件通知I/O模型――WSAEventSelect模型。这个模型与WSAAsyncSelect模型类似,允许应用程序在一个或者多个套接字上接收基于事件网络通知。它与WSAAsyncSelect模型类似是因为它也接收FD_XXX类型的网络事件,不过并不是依靠Windows的消息驱动机制,而是经由事件对象句柄通知。使用这个模型的原创 2013-05-05 10:41:38 · 1253 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔记----IOCP与可伸缩网络程序
完成端口I/O模型I/O完成端口是应用程序使用线程池处理I/O请求的一种机制。处理多个并发异步I/O请求时,使用I/O完成端口比在I/O请求时创建线程更快更有效。 CreateIoCompletionPort函数有点复杂,需要说明一下CreateIoCompletionPort函数有两个功能。1、创建一个完成端口对象。2、将一个或者多个文件句柄(套接字句柄)关联到I/O完成原创 2013-05-06 15:34:52 · 1538 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔记----可伸缩服务器系统设计实例
一个基于IOCP服务器的设计――CIOCPServer类 CIOCPServer类的总体结构:CIOCPServer类工作主要由一个监听线程_ListenThreadProc和一个或多个工作线程_WorkerThreadProc负责。 监听线程_ListenThreadProc的工作:监听线程负责初始投递几个异步的AcceptEx I/O,创建指定数目的工作线程,另外还负责原创 2013-05-08 00:00:16 · 1408 阅读 · 0 评论 -
粘包问题的解决思路
原谅链接:http://www.vckbase.com/index.php/wv/10解决TCP网络传输“粘包”问题文章概要:在应用开发过程中,基于TCP网络传输的应用程序有时会出现粘包现象(即发送方发送的若干包数据到接收方接收时粘成一包)。针对这种情况,笔者进行了专题研究与实验。本文重点分析了TCP网络粘包问题,并结合实验结果提出了解决该问题的对策和方法,供有关工程技术人员参考。转载 2013-05-11 09:33:21 · 870 阅读 · 0 评论 -
WinSock五种I/O模型的性能分析
原文链接:http://www.rover12421.com/2010/04/02/winsock%E4%BA%94%E7%A7%8Dio%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90.html重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O转载 2013-05-10 17:15:16 · 870 阅读 · 0 评论 -
错误合集(2013-3-11更新)
今天将书上的一个实例程序实现的时候,发现问题多多。首先是书上的代码本来就有BUG,而且书上作者是抄袭中的渣渣,连抄袭也没有抄完全,再加上自己能力上的问题,在查错、发现问题、调试上花了很多时间。最令人蛋痛的是,有很多错误其实是已经错过很多次了,又或者根本不是什么技术性错误。为了更好地节省自己的时间,自己每犯一次错误就在这里记一次,总结一次,就算再忙也要。这里的错误都将以小标题的格式分开,原创 2012-02-21 19:54:37 · 2122 阅读 · 6 评论 -
[综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区转载 2013-10-04 00:32:45 · 2063 阅读 · 0 评论 -
Windows进程间各种通信方式浅谈
1 Windows进程间通信的各种方法进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行转载 2013-10-04 20:01:56 · 1730 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔试----select模型
select模型具体编程流程:1、 初始化套接字集合fdSocket,向这个集合添加监听套接字。2、 将fdSocket集合拷贝到一个每一次临时要读取的fdRead集合,然后将fdRead传递给select函数。当有事件发生 时,select函数移除集合中没有未决I/O操作的套接字句柄,然后返回。3、 比较原来fdSo原创 2013-05-04 15:33:57 · 892 阅读 · 0 评论 -
《Windows网络与通信程序设计》读书笔记-----WSAAsyncSelect模型
WSAAsyncSelect模型WSAAsyncSelect模型允许应用程序以Windows消息的接收网络事件通知。这个模型是为了适应Windows的消息驱动环境而设置的,现在许多对性能要求不高的网络应用程序都采用WSAAsyncSelect模型,MFC中的CSocket类也使用了它。 WSAAsyncSelect函数自动把套接字设为非阻塞模式,并且为套接字绑定一个窗口句柄和发送哪些通原创 2013-05-04 16:02:11 · 1094 阅读 · 1 评论 -
《TCP/IP协议详解:卷一》读书笔记---IP、UDP、TCP协议基础
IP:网际协议不可靠:不能保证IP数据报能成功地到达目的地,仅提供最好的的传输服务。无连接:IP并不维护任何关于后续数据报的状态信息。每个数据报的处理的相互独立。IP首部普通的IP首部长为20个字节,除非含有选项字段。包含的字段:4位版本、4位首部长度、8位服务类型、16位总长度(字节数)、16位标识、3位标志(分片所用)、13位片偏移(分片所用)、8位生存原创 2013-04-01 20:32:07 · 1497 阅读 · 2 评论 -
WinSock 重叠I/O模型
//服务端/*。在程序清单7-8 中,我们向大家展示了如何构建一个简单的服务器应用,令其采用前述的方法,通过完成例程,来实现对一个套接字请求的管理。该程序的编码主要按下述步骤进行:① 新建一个套接字,开始在指定端口上,监听一个进入的连接。② 接受一个进入的连接请求。③ 为接受的套接字创建一个WSAOVERLAPPED 结构。④ 在套接字上投递一个异步转载 2012-02-03 17:43:46 · 1267 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑转载 2012-02-05 15:06:45 · 790 阅读 · 0 评论 -
winsock协议错误编码解析
。尝试对套接字进行操作,但被禁止。若试图在sendto或WSASendTo中使用一个广播地址,但是尚未用setsockopt和SO_BROADCAST这两个选项设置广播权限,便会产生这类错误。10014—WSAEFAULT地址无效。传给Winsock函数的指针地址无效。若指定的缓冲区太小,也会产生这个错误。10022 —WSAEINVAL参数无效。指定了一个无效参数。例如,假如为WSAIo转载 2012-02-21 19:55:59 · 4828 阅读 · 0 评论 -
socket INADDR_ANY 监听0.0.0.0地址 socket只绑定端口让路由表决定传到哪个ip
http://blogold.chinaunix.net/u1/43206/showart_518836.htmlsocket INADDR_ANY 监听0.0.0.0地址 socket只绑定端口让路由表决定传到哪个ip其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。一般情况下,如果你要建立网络服务器,则你要通转载 2012-02-21 22:34:44 · 11269 阅读 · 0 评论 -
简单的UDP回射服务程序与客户程序(修改自Unix网络编程一书)
#include#include"InitSock.h"#include #include#include#include#pragma comment(lib,"ws2_32.lib")CInitSock InitSock ;#define SERVERPORT 5010void dg_echo(SOCKET sSockfd ,原创 2012-03-30 01:18:08 · 1130 阅读 · 0 评论 -
简单的TCP回射服务程序与客户程序(修改自UNP一书)
#ifndef INITSOCK_H_/* --------------------------------------------------- 文件:InitSock.h 功能简述:载入winsock库 --------------------------------------------------- */#define INITSOCK_H_#原创 2012-03-30 01:16:11 · 1558 阅读 · 0 评论 -
用Win32 SDK & C++实现的一个简易版局域网聊天软件
效果图: 程序简要说明:程序名称:简易局域网聊天工具 开发方式:Win32 SDK 、C++开发环境:Visual C++ 6.0功能: 支持一对一聊天、传送、接收文件,支持群聊,实时好友列表,简陋的消息提示。缺点:用户界面不友好,排错功能较差,一个IP地址只能对应一个程序实例。 程序框架的来源:在局域网实现一个聊天工具,主要需要解决的是原创 2012-09-06 00:26:43 · 4598 阅读 · 4 评论 -
摘录-德问每周精选编程问答
前一阵子,在微博发现了一个叫做“德问”的编程问答网站,里面有不少有意思、值得思考的问题,也有让人叹为观止的解答。所以,自己想弄个博客长期记录,自己所关注领域的问题与解答。 下面的内容转自“德问:编程社交问答” 非精选,自己觉得有意思的: 1、deque的插入和删除操作会使迭代器失效么? 2、MinGw中GCC与G++的异同?3、Windows中,互斥转载 2012-11-29 00:53:42 · 983 阅读 · 0 评论 -
写一下这些年看过的书(2014.7.31更新)
之前答应了啊牛要写一篇东西分享一下经验,但是却一直都没怎么动手。因为自己大学四年基本上都是摸着石头过河的感觉,也谈不上什么经验,所以也不知道自己可以写些什么。不过,后来受一位师兄的日志启发,觉得也可以分享一下自己看过的书,让师弟师妹参考一下,希望能起到一点帮助吧。 PS:水平有限,下面介绍的那些书完全是站着自己角度去写的,所以如有不妥的地方,请大家指正。 1、《C Prime原创 2014-07-06 01:18:57 · 2207 阅读 · 0 评论