首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    winsock

    加载Winsock库函数 : WSAStartup 1 int WSAStartup( 2 WORD wVersionRequested,//指定想要加载的winsock库 FAR* lpVendorInfo; //已废弃的参数 10 }WSADATA,FAR* LOWSADATA; 每一个WSAStart调用必须对应一个队WSAClean的调用,这个函数用来释放winsock 库 int WSACleanup(void); 如果想使用winsock库,应该包含对应的库文件 1 #pragma comment(lib,"WS2_32") 以后封装的经常用到的CInitSock类 1 #include <winsock2.h> 2 #pragma comment(lib,"WS2_32") 3 class CInitSock 4 { 5 public: 6

    75950发布于 2018-01-17
  • 来自专栏MasiMaro 的技术博文

    WinSock2 API

    ---- title: WinSock2 API tags: [WinSock, 网络编程, WinSock2.0 API, 动态加载, WinSock 异步函数] date: 2018-07-21 10:36:09 categories: Windows 网络编程 keywords: WinSock, 网络编程, WinSock2.0 API, 动态加载, WinSock 异步函数 --- 为了高效的处理网络IO,WinSock提供了大量这样的异步函数。 针对这种特性WinSock提供了对应的异步操作函数AcceptEx。 在Winsock中为此而专门提供了一个高效传输文件的API——TransmitFile。

    1.4K10发布于 2018-08-31
  • 来自专栏逍遥剑客的游戏开发

    WinSock学习笔记(一)

    ◆Socket开发所必须需要的文件(以WinSock V2.0为例): 头文件:Winsock2.h 库文件:WS2_32.LIB 动态库:W32_32.DLL 一些重要的定义 1、数据类型的基本定义 32; //设置TTL值 int rc = setsockopt( s, IPPROTO_IP, IP_TTL, (char *)&ttl, sizeof(ttl)); 套接字的使用步骤 1、启动Winsock :对Winsock DLL进行初始化,协商Winsock的版本支持并分配必要的 资源。 (服务器端和客户端) int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ) wVersionRequested为打算加载Winsock szDescription="WinSock 2.0" szSystemStatus="Running"表示正在运行。 iMaxSockets=0表示同时打开的socket最大数,为0表示没有限制。

    1.3K70发布于 2018-05-21
  • 来自专栏MasiMaro 的技术博文

    WinSock WSAEventSelect 模型

    对此WinSock 提供了另一种模型 WSAEventSelect 模型简介 该模型主要特色在于它使用事件句柄来完成SOCKET事件的通知。 该模型首先在每个socket句柄上调用WSACreateEvent来创建一个WSAEvent对象句柄(早期的WSAEvent与传统的Event句柄有一定的区别,但是从WinSock2.0 以后二者是同一个东西 而自动重置表示每次等待函数返回后会自动重置为无信号;调用WSACreateEvent创建的WSAEvent对象是需要手工重置的,如果想创建自动重置的WSAEvent对象可以调用CreateEvent函数来创建(由于WinSock2.0

    1.4K30发布于 2018-08-31
  • 来自专栏MasiMaro 的技术博文

    WinSock Socket 池

    之前在WinSock2.0 API 中说到,像DisConnectEx 函数这样,它具有回收SOCKET的功能,而像AcceptEx这样的函数,它不会自己在内部创建新的SOCKET,需要外部传入SOCKET SOCKET池 WinSock 函数就是为了提升程序的性能而产生的,这些函数主要使用与TCP协议,我们可以在程序启动的时候创建大量的SOCKET句柄,在必要的时候直接使用AcceptEx这样的函数来使用已有的 IOCP本身也是一个线程池,如果用它结合WinSock 的线程池将会是Windows系统上最佳的性能组合,当然在此基础上可以考虑加入线程池、内存池的相关技术来进一步提高程序的性能。 注意这里我们先对每个SOCKET进行了绑定,这个在一般的SOCKET客户端服务器模型中没有这个操作,这个操作是WinSock API2.0需要的操作。 而在Winsock中将这种理念发挥到了SOCKET的传输上。WSABUF正是用于这个理念的产物。

    1.4K10发布于 2018-08-31
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    Winsock协议目录

    协议特性:   winsock用WSAPROTOCOL_INFO结构描述特定协议的完整信息。称为一个winsock目录入口。    使用winsock SPI函数枚举协议  winsock SPI提供的枚举协议的函数是WSCEnumProtocols,能够枚举各种协议,包括分层协议,基础协议,协议链。   

    1.4K60发布于 2018-01-17
  • 来自专栏MasiMaro 的技术博文

    WinSock 重叠IO模型

    ---- title: WinSock 重叠IO模型 tags: [WinSock 模型, 网络编程, 重叠IO模型] date: 2018-06-29 20:26:13 categories: Windows 网络编程 keywords: WinSock 模型, 网络编程, 重叠IO模型 --- 之前介绍的WSAAsyncSelect和WSAEvent模型解决了收发数据的时机问题,但是网卡这种设备相比于 这也是在WinSock1中,使用WriteFile和ReadFile来进行网络数据读写的原因。既然它本质上也是CPU需要等待慢速的设备,那么为了效率它必定可以支持异步操作,也就可以使用重叠IO。 在WinSock1.0 中可以使用ReadFile和WriteFile来支持重叠IO,但是WinSock2.0 中重新设计的一套函数来支持重叠IO WSASend (send的等价函数) WSASendTo 在main函数中首先完成了WinSock环境的初始化然后创建监听套接字,绑定,监听。

    2.2K20发布于 2018-08-31
  • 来自专栏MasiMaro 的技术博文

    WinSock 完成端口模型

    之前写了关于Winsock的重叠IO模型,按理来说重叠IO模型与之前的模型相比,它的socket即是非阻塞的,也是异步的,它基本上性能非常高,但是它主要的缺点在于,即使我们使用历程来处理完成通知,但是我们知道历程它本身是在对应线程暂停 处于这个思想,WinSock提供了一个新的模型——完成端口模型。 完成端口简介 完成端口本质上是一个线程池的模型,它需要我们创建对应的线程放在那,当完成通知到来时,他会直接执行线程。 在Winsock中如果要绑定SOCKET到完成端口只需要将SOCKET强转为HANDLE。 第二个参数是一个已知的完成端口句柄,如果是创建完成端口,这个参数填入NULL。

    1.2K20发布于 2018-08-31
  • 来自专栏加菲猫的VFP

    WINSOCK发送Email,调用FTP

    它的主要功能是检查 Winsock 的状态和等待连接的确认. 定义一个期限是重要的, 否则此处的循环将有可能使系统崩溃. 回到 CLIENTE 表单, 在 Winsock 的 DataArrival 方法中, 我们可以看到它获得了 Winsock 的缓冲中的内容并将它放入到文本框 RETORNO 中, 处理结束. 分析该示例中使用的各个方法是重要的, 因为所有便于理解 Winsock 动作的解释都在代码中. FTP 与 Winsock 在示例 3 中我们将看看它是如何连接到 FTP, 列出 FTP 上的文件名和从 FTP 下载文件的. 结论 从以上的示例中, 我们可以注意到在 VFP 中使用 Winsock 是非常简单的任务.

    1.3K20发布于 2021-11-12
  • 来自专栏祥的专栏

    WinSock封装自己的UDP类2

    blog.csdn.net/humanking7/article/details/50731385 ---- 使用共用体union的好处 线程的创建和用法 创建线程 线程函数 互斥量的用法 ---- 接上文,“用WinSock

    81410发布于 2020-03-10
  • 来自专栏祥的专栏

    WinSock封装自己的UDP类1

    转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/50726625 ---- 不管别人的UDP类如何方便,都不如调用WinSock 代码预览 头文件 #ifndef _QFX_CLASS_UDP_H #define _QFX_CLASS_UDP_H #include <WinSock2.h> #pragma comment(lib ============="<<endl; } ReleaseMutex(g_Mutex); } return 0; } 下一篇文章 “用WinSock

    1.2K10发布于 2020-03-10
  • 来自专栏格物致知

    Design issues - Sending small data segments over TCP with Winsock

    您需要通过 TCP 发送较小的数据数据包,Winsock 应用程序的设计时尤其重要。延迟的ACK、 Nagle 算法和 Winsock 缓冲的交互的设计方案可以极大地影响性能。 to a Winsock kernel buffer. 你可以使用SO_SNDBUF 选项修改Winsock kernel buffer大小(默认8K)。如果有必要,Winsock可以缓冲明显比SO_SNDBUF缓冲区大小。 配额,Winsock 将数据拷贝到缓冲区,并指示完成发送到应用程序。 Case Study 1 Overview: A Winsock TCP client needs to send 10000 records to a Winsock TCP server to

    67020编辑于 2022-08-19
  • 来自专栏编程进阶实战

    一款基于 .NET 开源、可以拦截并修改 WinSock 封包的 Windows 软件

    前言 今天大姚给大家分享一款基于 .NET 开源(MIT license)、可以拦截并修改 WinSock 封包的 Windows 软件:WinsockPacketEditor。 工具介绍 WinsockPacketEditor(WPE x64)一款基于 .NET 开源(MIT license)、可以拦截并修改 WinSock 封包的 Windows 软件,自适应支持 32 位及 WinSock 介绍 WinSock 全称为 Windows Sockets,是微软在 Windows 操作系统中提供的一组 API(应用程序接口),用于实现网络通信协议的标准。 通过 Winsock 程序可以进行各种网络操作,如建立 TCP/IP 连接、发送和接收数据、管理网络连接等。

    55610编辑于 2025-05-19
  • 来自专栏DotNet NB && CloudNative

    一款基于 .NET 开源、可以拦截并修改 WinSock 封包的 Windows 软件

    前言 今天大姚给大家分享一款基于 .NET 开源(MIT license)、可以拦截并修改 WinSock 封包的 Windows 软件:WinsockPacketEditor。 工具介绍 WinsockPacketEditor(WPE x64)一款基于 .NET 开源(MIT license)、可以拦截并修改 WinSock 封包的 Windows 软件,自适应支持 32 位及 WinSock 介绍 WinSock 全称为 Windows Sockets,是微软在 Windows 操作系统中提供的一组 API(应用程序接口),用于实现网络通信协议的标准。 通过 Winsock 程序可以进行各种网络操作,如建立 TCP/IP 连接、发送和接收数据、管理网络连接等。

    57100编辑于 2025-06-20
  • 来自专栏TSINGSEE青犀视频

    TSINGSEE青犀视频编译Winsock2 websocket服务端连接异常断开问题排查

    websocket是独立的、创建在 TCP 上的协议,用户可以扩展协议、实现部分自定义的子协议。我们在编译WebRTC时,采用websocket进行通信,在写Window c++ websocket服务端时,客户端连接出现以下连接信息,但是在客户端测试websocket消息时,控制台不打断户端发出消息。

    63520发布于 2021-06-30
  • 来自专栏magicsoar

    windows下的C++ socket服务器(1)

    #include <winsock2.h>     大家会发现windows下有winsock.h和winsock2.h,winsock2.h是winsock.h的升级版,它设计的目的是替代winsock.h 在winsock.h中定义的所有内容在winsock2.h中也都定义了。winsock2.h定义了_WINSOCKAPI_,阻止编译器去处理后面的winsock.h,这样编译不会报错。 但是如果winsock.h在winsock2.h前出现,winsock2.h就重新定义winsock.h已经定义的东西,导致编译报错。 比如 #include<winsock.h> #include<winsock2.h> //error winsock.h在winsock2.h前出现 #include<winsock2.h> #include <winsock.h> //正确 winsock2.h在winsock.h前出现 值得注意的是在windows.h中   旧的版本(我使用的是win7 vs2013)中自动包涵winsock.h,而在新的版本

    2.6K80发布于 2018-02-06
  • 来自专栏加菲猫的VFP

    VFP通过winsock控件实现客户端和服务器多对一通信

    今天猫猫花了一下午弄清楚了Winsock的控件的用法,现在已经实现了多对一通信,但VFP是单线程的,能承载多少客户端,还有待测试。 猫猫封装了一个Qiyu_winsock控件类,服务端使用的,平常就放在项目中就好。 服务端的原理就是一个连接进来了,就newobject Qiyu_winsock来接收处理数据。 服务端开发 表单添加一个EDIT1的文本框,一个winsock的控件叫tcpserver,添加一个collwinsock的属性,分别添加dataevets,getwinsock的方法 如图所示 表单的 ","qiyu_winsock.vcx","","thisform.dataevents") oObjsock=Evaluate("thisform." ","qiyu_winsock.vcx","","thisform.dataevents") 来传入的。

    1.7K30编辑于 2022-10-27
  • 来自专栏hbbliyong

    能ping通外网dns但不能上网一例

    这个现像就是Winsock LSP“浏览器劫持”哪么是什么是Winsock LSP“浏览器劫持”呢? 多数原因是因为那些恶意软件抢占了系统的winsock lsp。 LSPFIX跟WinsockFix同样,也是一款WinSock/TCP网络连接配置修复工具。 "netsh winsock reset catalog"该命令将 Winsock 目录重置为默认配置。如果安装了可导致网络连接丢失的不正确的 LSP,该命令会很有用。 "netsh winsock show catalog 该命令会显示安装在计算机上的 Winsock LSP 列表。 所以呢,我们在没有任何辅助工具的情况下可以用netsh winsock reset命令来重置Winsock

    8K60发布于 2018-03-05
  • 来自专栏C++

    【在Linux世界中追寻伟大的One Piece】验证TCP

    在编写使用Winsock2的程序时,需要在源文件中包含WinSock2.h头文件。这样,编译器就能够识别并理解Winsock2中定义的数据类型和函数,从而能够正确地编译和链接网络相关的代码。 此外,与WinSock2.h头文件相对应的是ws2_32.lib库文件。在链接阶段,需要将这个库文件链接到程序中,以确保运行时能够找到并调用Winsock2 API中实现的函数。 在WinSock2.h中定义了一些重要的数据类型和函数,如: WSADATA:保存初始化 Winsock 库时返回的信息。 SOCKET:表示一个套接字描述符,用于在网络中唯一标识一个套接字。 WSAStartup函数是Windows Sockets API的初始化函数,它用于初始化Winsock库。 成功调用该函数后,Winsock库的状态会被初始化,应用程序就可以使用Winsock提供的一系列套接字服务,如地址家族识别、地址转换、名字查询和连接控制等。

    46510编辑于 2024-09-24
  • 来自专栏黄啊码【CSDN同名】

    system C Language

    #include<Winsock2.h> #pragma comment(lib,"ws2_32.lib") Winsock编程接口是微软提供的api 调用winsock函数之前必须装载winsock库,否则会返回socket_error 调用wsaStartup函数初始化wsa int WSAStartup (WORD wVersionRequested, //指定winsock加载winsock库的版本 LPWSADATA lpWSAData //保存WSAStartup函数返回的Winsock

    56110发布于 2020-05-29
领券