listen 监听即将到来的连接。返回值的错误码可以调用WSAGetLastError。这是个阻塞函数,没啥好说的。

int listen(_In_  SOCKET s,_In_  int backlog//最大能连接的数量,SOMAXCONN将使用底层服务提供的值的。
);

如果连接队列满了,就会导致客户端收到连接拒绝的错误(WSAECONNREFUSED)。

下面是MSDN上的一个例子。

#ifndef UNICODE
#define UNICODE
#endif#define WIN32_LEAN_AND_MEAN#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>// Need to link with Ws2_32.lib
#pragma comment(lib, "ws2_32.lib")int wmain()
{//----------------------// Initialize WinsockWSADATA wsaData;int iResult = 0;SOCKET ListenSocket = INVALID_SOCKET;sockaddr_in service;iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);if (iResult != NO_ERROR) {wprintf(L"WSAStartup() failed with error: %d\n", iResult);return 1;}//----------------------// Create a SOCKET for listening for incoming connection requests.ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (ListenSocket == INVALID_SOCKET) {wprintf(L"socket function failed with error: %ld\n", WSAGetLastError());WSACleanup();return 1;}//----------------------// The sockaddr_in structure specifies the address family,// IP address, and port for the socket that is being bound.service.sin_family = AF_INET;service.sin_addr.s_addr = inet_addr("127.0.0.1");service.sin_port = htons(27015);iResult = bind(ListenSocket, (SOCKADDR *) & service, sizeof (service));if (iResult == SOCKET_ERROR) {wprintf(L"bind function failed with error %d\n", WSAGetLastError());iResult = closesocket(ListenSocket);if (iResult == SOCKET_ERROR)wprintf(L"closesocket function failed with error %d\n", WSAGetLastError());WSACleanup();return 1;}//----------------------// Listen for incoming connection requests // on the created socketif (listen(ListenSocket, SOMAXCONN) == SOCKET_ERROR)wprintf(L"listen function failed with error: %d\n", WSAGetLastError());wprintf(L"Listening on socket...\n");iResult = closesocket(ListenSocket);if (iResult == SOCKET_ERROR) {wprintf(L"closesocket function failed with error %d\n", WSAGetLastError());WSACleanup();return 1;}WSACleanup();return 0;
}

网络编程Winsock——listen相关推荐

  1. 网络编程0x04 Listen函数

    网络编程0x04 Listen函数 文章目录 网络编程0x04 Listen函数 1.套接字分类 2. listen函数 3. 监听过程 1.套接字分类 TCP socket分两种: 监听socket ...

  2. Windows下的网络编程Winsock

    文章目录 前言 1.服务器下的Winsock 1.1.构建编程环境: 1.2.WSAData结构体 1.3.WSAStartup初始化Winsock 1.4.WSACleanup释放Winsock 1 ...

  3. C++ tcpip网络编程中listen函数和accept函数详解和区别

    listen函数 摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程.在TCP服务器编程中listen函数把进程变为一个服务器,并指定 ...

  4. VC网络编程-Winsock开发网络通信程序的经典入门

    Winsock开发网络通信程序的经典入门 对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手.许多概念,诸如:同步(Sync) / 异步(Async),阻塞(Block) / 非阻 ...

  5. linux网络编程中listen函数 backlog的含义

    结论: backlog 是用来指定在TCP连接时,同时进行 3次握手建立连接的客户端数量 listen函数在一般在调用bind之后-调用accept之前调用, 它的函数原型是: #include< ...

  6. C语言网络编程:listen函数详解

    文章目录 前言 函数描述 代码实例 TCP服务器为什么调用listen 前言 根据TCP编程模型中我们可以看到之前的socket和bind接口是tcp服务器在为接收客户端的链接做准备,保证tcp的面向 ...

  7. TCP 网络编程API - listen()、accept()

    目录 listen() listen() 函数介绍 listen() 函数的例子 应用层 listen()函数和内核函数之间的关系 accept () accept ()函数介绍 accept ()函 ...

  8. C语言网络编程函数与相关结构汇总

    持续更新中- 服务器和客户端的一般流程 服务器端:socket()-->bind( )-->listen()-->accept()-->read()/write()---> ...

  9. 基于Winsock API的VC网络编程实战

    基于Winsock API的VC网络编程实战 随着计算机信息技术的飞速发展,互联网与人类社会的工作.生活越来越紧密相关,它已经成为人类获取.交流信息的重要途径和手段.所以当前对于开发人员来说,网络编程 ...

最新文章

  1. 你的产品没有一炮而红,后面该怎么办?
  2. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)
  3. CentOS7 安装 mircosoft Netcore 自测部署安装
  4. 字符串和整形、浮点类型的相互转化
  5. struts2.0和jQuery1.5的json问题
  6. python爬虫常见反爬措施_爬虫常见的反爬措施有哪些
  7. 思科模拟器 简单网络连接操作
  8. ALSA驱动中snd_soc_write()原理分析及demo(二十二)
  9. 死磕 java同步系列之JMM(Java Memory Model)
  10. Java学习笔记(六)数据的操作(增、删、改的操作)
  11. 最常用的scrum工具、敏捷开发工具、看板工具
  12. nginx网关与gateway网关的区别
  13. Android后端工程师的要求,后端工程师的岗位职责和能力
  14. 中国电视艺术家协会名誉主席赵化勇一行莅临蓝海彤翔参观指导
  15. 计算机单元格数值不保留小数,EXCEL单元格数值实现真正保留2位小数的方法
  16. 基于车辆模型的横向控制方法
  17. linux系统如何安装lol,Linux系统下安装红色警戒2步骤详解(2)
  18. Locust使用方法
  19. 阿里云点播 web 播放器
  20. 【Parsec】笔记本远程连接主机,Parsec+ZeroTier,解决公网ip问题,校园网可用

热门文章

  1. Kinect开发教程四:用Kinect控制鼠标玩水果忍者PC版
  2. 创编游戏计算机课反思,游戏教学活动反思
  3. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类
  4. GitLab安装以及汉化
  5. [JAVA]java中的打印输出语句
  6. java个人网站_Java
  7. 如何自建微信外卖平台_怎么在微信上做外卖?
  8. DRAM书籍笔记 - 目录整理
  9. 【附源码】计算机毕业设计SSM图书商城
  10. swift必知必会之数据库框架-Realm