网络编程
Marcelxx
这个作者很懒,什么都没留下…
展开
-
基本数据结构和函数说明
WSADATA: 这个结构被用来存储被WSAStartup函数调用返回的Windows Sockets数据,包含Winsock.dll执行的数据和一些Sockets初始化信息。半相关: 是一个三元组(协议,本地网络地址,端口号);在全局中唯一地标示一个进程;SOCKET就是半相关描述; 全相关: 是一个五元组(协议,本地网络地址,本地端口号,远端网原创 2013-08-20 19:43:45 · 934 阅读 · 0 评论 -
P2P通信
在传统的集中式网络中,都是一台服务器(集群)对外提供服务,所有客户端都依赖中央服务器进行与服务端的通信或者其他客户端的通信。如图 这样的通信方式,一个数据包从一个客户端发送到另一个客户端都要在服务端中进行中转,服务端承受的压力非常大,很容易因为线程问题而当机。 于是提出另一种通信方式:P2P通信(peer to peer) 对等通信。 即:在p2p的网络中,所有网络节点都是同等地转载 2014-10-14 21:28:09 · 748 阅读 · 0 评论 -
完成端口
CreateIoCompletionPort:CreateIoCompletionPort函数关联一个已打开的文件实例和新建的或已存在的I/0完成端口,或者创建一个未关联任何文件的I/O完成端口。该函数两个明显作用:1. 用于创建一个完成端口对象。2. 将一个句柄同完成端口关联到一起,创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O请求。即该函数的两转载 2013-11-15 11:28:53 · 727 阅读 · 0 评论 -
Overlapped I/O模型深入分析
简述: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事件转载 2013-11-14 11:27:01 · 894 阅读 · 0 评论 -
广播通信
//客户端代码#include #include using namespace std;#pragma comment(lib,"ws2_32.lib")int main(){ WSADATA wsa; WSAStartup(0x0202, &wsa); SOCKET sSendSock = socket(AF_INET, SOCK_DGRAM, 0); BOOL原创 2013-11-20 11:01:10 · 918 阅读 · 0 评论 -
FTP理论
起初, FTP并不是应用于IP网络上的协议,而是ARPANET网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960~1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文转载 2013-10-30 14:36:07 · 1773 阅读 · 0 评论 -
ICMP协议
简介: ICMP:Internet Control Message Protocol。互联网控制报文协议。 ICMP报文封装在IP数据报内被传输,实际上它时IP协议的一个组成部分,必须被每一个IP模块实现。 IP协议是无连接的,不能提供可靠的数据传输,在数据传输的过程中,可能会由于路由器、主机或传输链路故障导致传输错误,IP协议并不处理这些故障,原创 2013-09-15 22:38:22 · 1102 阅读 · 0 评论 -
TCP关闭连接
与建立连接需要三次握手一样,关闭连接也要遵循一定的操作序列。由于TCP连接时全双工的,数据可以在两个方向上同时传递,每台设备都可以单独关闭该方向上的连接。关闭连接意味着我的数据已经发送完了,但它还可以继续接收从对方到来的数据,直到对方也关闭了连接。应用程序可以连续调用几次send操作,紧接着关闭连接,然后接收数据,知道因对方关闭连接而导致接收失败。 用户关闭连接后,如果TCP缓冲区中原创 2013-09-04 15:17:51 · 1163 阅读 · 0 评论 -
网络数据包协议分析软件
wiresharksnifferpronetwork moniter原创 2013-09-10 16:37:29 · 1166 阅读 · 0 评论 -
IP网际协议
IP协议位于OSI网络模型的网络层,提供一种速度快但不可靠的服务,不可靠的意思是它不保证IP数据报能成功的到达目的地。TCP、UDP、ICMP、IGMP数据都是以IP数据报格式传输的,每一份数据包都包含源IP和目的IP地址。IP协议提供点到点的服务,IP解决的最根本的问题是如何把网络上的主机连接在一起。 IP路由选择: 如果目的主机与源主机直接相连(如点对点链路原创 2013-09-03 16:25:51 · 789 阅读 · 0 评论 -
OSI七层模型和TCP/IP四层模型
OSI七层模型从底层到高层依次是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。这些层次分为低三层和高四层,底层为高层提供服务。各层详解: 1.物理层: 传输单元:比特流bit,110110110……. 工作设备:光纤、双绞线、中继器和集线器 常见概念:RJ-45(就是那个网线接口)、IEEE802.2(网卡)原创 2013-09-03 10:33:07 · 1637 阅读 · 0 评论 -
TCP与UDP
数据报中的IP地址标识了数据要到达哪台主机,而传输层首部中的端口号标识了数据要交给哪个应用程序。 应用程序与另一台主机上的程序通信时,他们之间会有一系列的数据交换,对于任何一端,发送数据时,会把对方的IP地址、端口号和数据交给TCP/IP协议。TCP/IP协议对数据进行封装,每一层都在最前面增加本层的首部,紧接着是上一层传递给它的数据。一些链路层协议还会在最后追加尾部。如:以太网会原创 2013-09-03 14:23:49 · 720 阅读 · 0 评论 -
IOCP程序
学习的时候,在网上找了好久,但是都没找到满意的。自己会了,写一个可以运行的吧!memset(&pPer_IO_Data->overlapped,0,sizeof(pPer_IO_Data->overlapped));这一句非常重要,因为开始几次没有写这句话,老是出现问题,而且还找不到原因,查了好多的资料,总算是解决了!!也希望大家能避免这个问题![html] vie原创 2013-09-02 11:54:16 · 1176 阅读 · 0 评论 -
客户端 用不用 bind 的区别
客户端 用不用 bind 的区别2012-05-07 11:41:53分类: C/C++ 无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用的端口来使用。 Bind()函数在成功被调用时返回0;出现错误时返回"-1"并将转载 2013-08-21 14:45:44 · 629 阅读 · 0 评论 -
Timer例子
#include #include #include #include void onTime(int sock, short event, void*arg){std::cout << "On Timer" << std::endl;}int main(){#ifdef _WIN32WORD wVersionRequested;WSADATA wsaData;wVersionRequested原创 2017-03-06 12:08:51 · 616 阅读 · 0 评论