Socket模型详解(转)
摘要:两种I/O模式一.选择模型二.异步选择三.事件选择四.重叠I/O模型五.完成端口模型五种I/O模型的比较两种I/O模式1、两种I/O模式阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回WSAEWOULDBLOCK错误。但功能强大。如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSele
阅读全文
Socket UDP 简单聊天的实现
摘要:服务器端: 1 #pragma comment(lib, "ws2_32.lib") 2 #include <iostream> 3 #include <Winsock2.h> 4 using namespace std; 5 SOCKET sockServer; 6 sockaddr_in addrServer; 7 sockaddr_in addrSend; 8 #define BUF_SIZE 1024 9 #define IP_ADDR "192.168.59.69" 10 #define PORT 5050 11 12
阅读全文
主机名、域名、IP、MAC地址的获取
摘要:GetPCInfo类头文件: 1 #pragma once 2 #include <ctime> 3 #include <fstream> 4 #include <iphlpapi.h> 5 #include <string> 6 #include <Winsock2.h> 7 #pragma comment(lib, "IPHLPAPI.lib") 8 #pragma comment(lib, "ws2_32.lib") 9 //电脑相关信息的结构体10 typedef struct MAC_
阅读全文
Socket TCP 简单聊天的实现
摘要:首先加入ws2_32.lib静态链接库:项目-属性-配置属性-链接器-输入-附加依赖项或者在声明处加入#pragma comment(lib,"ws2_32.lib")服务器端: 1 #include <iostream> 2 #include <winsock2.h>//2.0版本 3 #include <process.h>//_beginthreadex的头文件 4 #include <windows.h>//Sleep的头文件 5 using namespace std; 6 SOCKET serveSocket,cl
阅读全文
套接字
摘要:c++ 使用socket实现C/S端文件的下载传输首先是服务器端,大致说下流程:服务器创建线程去处理应答accept(),当接受到客户端连接请求时,首先获取要发送的指定的文件数据总大小给客户端,接着就是循环读取要发送的文件数据流向客户端发送文件数据,每次都判断循环读取到的数据实际大小,当实际读取到的数据总大小为0时,表示文件发送结束。下面是服务器server端实现:声明部分:public: afx_msg void OnBnClickedButton1();public: BOOL InitSocket(); //初始化并创建套接字 static DWORD WINAPI ThreadProc
阅读全文
Socket
摘要:SOCKET WSAAPI socket( int af,//协议地址族 int type,//协议套接字类型 int protocol//传输层协议);AfMeaningAF_UNSPEC0The address family is unspecified.AF_INET2The Internet Protocol version 4 (IPv4) address family.AF_NETBIOS17The NetBIOS address family. This address family is only supported if a Windows Sockets provider
阅读全文