C++socket编程(三):3.5 accept读取用户的连接信息

2023-11-18

读取用户的连接信息
顾名思义,就是在服务段中获取连接进来的客户端的ip地址,套接字编号,ip地址,端口号等。
下面开看代码,获取用户客户端的socket号。

int client = accept(sock, 0, 0);//创建一个新的socket,用来与客户端单独进行通信
	printf("accept client %d\n", client);

	closesocket(client);

注意上面的代码,我们是要进行客户端scoket的id号获取,注意accept返回值是一个新的socket这个是用来和客户端进行连接的socket。

获取客户端多项信息:ip,端口号等
如下代码:

sockaddr_in caddr;

socklen_t len = sizeof(caddr);

int client = accept(sock, (sockaddr*)&caddr, &len);//创建一个新的socket,用来与客户端单独进行通信
printf("accept client %d\n", client);
char* ip = inet_ntoa(caddr.sin_addr);     
unsigned short cport = ntohs(caddr.sin_port);       //将网络字节序转化为本地字节序
printf("client ip is %s,port is %d\n", ip, cport);

close(client);

分析代码:第三章讲解的全部是服务器相关代码,所以accpet中后面连个参数,用来保存连接进来的客户端的套接字结构体相关信息,用来初始化连接客户端的套接字的相关变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++socket编程(三):3.5 accept读取用户的连接信息 的相关文章

  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • Microsemi SmartFusion系列FPGA简介

    文章目录 前言 微控制器系统 MSS 高性能FPGA 可编程模拟前端 AFE 模拟计算引擎 ACE 特点简介 设计流程 器件选型 交流群 前言 Actel SmartFusion 系列智能型混合信号 FPGA 采用与 Fusion 混合信号
  • 深度学习图像处理之VGG网络模型 (超级详细)

    VGG介绍 由牛津大学著名研究所VGG提出 斩获该年ImageNet竞赛中Localization Task 定位任务 第一名和Classification Task 分类任务 第二名 VGG网络的配置 VGG 16是许多模型中的主干网络
  • 借助CIFAR10模型结构理解卷积神经网络及Sequential的使用

    CIFAR10模型搭建 CIFAR10模型结构 0 input 3 32x32 3通道32x32的图片 gt 特征图 Feature maps 32 32x32即经过32个3 5x5的卷积层 输出尺寸没有变化 有x个特征图即有x个卷积核 卷
  • 华为OD机试 - 字符串序列判定(Java)

    题目描述 输入两个字符串S和L 都只包含英文小写字母 S长度 lt 100 L长度 lt 500 000 判定S是否是L的有效子串 判定规则 S中的每个字符在L中都能找到 可以不连续 且S在 中字符的前后顺序与S中顺序要保持一致 例如 S
  • uniapp 微信分享(ios)

    ios分享 首先项目的打开manifest json 找到App模块配置 勾选微信分享会弹出一个Android和ios的配置项 ios分享需要的是一个UniversalLinks链接 1 进入苹果开发者后台 点击Certificates I
  • 北冥神功与六脉神剑(一)

    北冥神功与六脉神剑 言念及此 登时心下坦然 默默祷祝 神仙姊姊 你吩咐下来的事 段誉当然一定遵行不误 但愿你法力无边 逍遥派弟子早已个个无疾而终 战战兢兢的打开绸包 里面是个卷成一卷的帛卷 展将开来 第一行写着 北冥神功 字迹娟秀而有力 便
  • 如何解决:OSError: Unable to create file (unable to open file: name = ‘. et_classification.h5‘, errno = 2

    报错 OSError Unable to create file unable to open file name et classification h5 errno 22 error message Invalid argument f
  • 【深度学习工作站】CUDA + cuDNN + Tensorflow-gpu

    安装有两种路径 1 Anaconda简便安装 不需要安装CUDA和cuDNN 即使装了 Conda环境还是会重装CUDA和cuDNN 在清华镜像下载Anaconda3 新建环境后conda install tensorflow gpu 1
  • [ECharts] There is a chart instance already initialized on the dom.问题原因

    在使用vue绘图的时候 我设置间隔时间进行绘制 控制台一直警告 ECharts There is a chart instance already initialized on the dom 查看代码是因为获取了两次dom进行了初始化 m
  • Mac下 cobra安装

    Mac下 cobra安装 1 配置 bash profile export GOPATH PWD go export GOBIN GOPATH bin export PATH PATH GOBIN 2 在 GOPATH src go get
  • 刚体动力学

    文章目录 刚体状态 将某个物体从局部坐标系变化到全局坐标系 对时间求导 对矩阵求导 惯性 刚体属性 1 质心 计算方法 体素法 直接计算法 四面体体积 四面体的中心 2 惯性张量 世界坐标系中的惯性变量 刚体运动 力矩 刚体的固定属性 当前
  • c语言停车场

    include
  • Google Test(GTEST)使用入门(2)- 原生例子分析

    目录 一 原生例子路径 二 待测代码 三 主程序入口 四 测试用例代码 五 总结 一 原生例子路径 上篇我们已经介绍原生的例子在如下路径 googletest release 1 8 1 googletest samples 测试用例和待测
  • spring boot一个奇怪的错误(There was an unexpected error (type=Internal Server Error, status=500). Exceptio)

    今天运行spring boot的时候爆了这个错 There was an unexpected error type Internal Server Error status 500 Exception parsing document t
  • numpy--argsort含义及连续两个argsort用法

    官方文档 https docs scipy org doc numpy 1 15 0 reference generated numpy argsort html numpy argsort argsort函数返回的是数组值从小到大的索引值
  • 三极管的知识

    三极管的知识 在实际的电路中 三极管可以应用到很多的场景中 三极管最常用的功能是开关的作用 要利用其开关的作用 那么必须了解三极管的特性 B为基极 E为发射极 C为集电极 根据箭头的方向来判定三极管是NPN还是PNP 1 截止状态 当加在三
  • 【SpringSecurity】使用注解方式实现匿名访问

    SpringSecurity实现匿名访问的方式如下 spring security配置 link EnableGlobalMethodSecurity 如果想要启用spring方法级安全时 使用这个注解 author ruoyi Enabl
  • css常用选择器

    一 常用的css基本选择器 4种 1 标签选择器 结构 标签名 css属性名 属性值 作用 通过标签名 找到页面中所有的这类标签 设置样式 注意 1 标签选择器选择的是一类标签 而不是单独的一个 2 标签选择器无论嵌套关系有多深 都能够找到
  • AC自动机 (多模式匹配)

    AC自动机 感谢博主 https blog csdn net bestsort article details 82947639 感谢博主 https fanfansann blog csdn net article details 106
  • C++socket编程(三):3.5 accept读取用户的连接信息

    读取用户的连接信息 顾名思义 就是在服务段中获取连接进来的客户端的ip地址 套接字编号 ip地址 端口号等 下面开看代码 获取用户客户端的socket号 int client accept sock 0 0 创建一个新的socket 用来与