当前位置: 首页 > news >正文

一个简单的Windows TCP服务器实现

初始化

WSADATA wsaData;
SOCKET serverSocket, clientSocket;
struct sockaddr_in serverAddr = { 0x00 };
struct sockaddr_in clientAddr = { 0x00 };
int clientAddrLen = sizeof(clientAddr);if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {printf("WSAStartup failed.\n");
}

创建socket

if ((serverSocket = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {printf("Socket failed.\n");WSACleanup();
}

IP及端口号配置

serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = INADDR_ANY;
serverAddr.sin_port = htons(9988);if (bind(serverSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {printf("Bind failed.\n")closesocket(serverSocket);WSACleanup();
}

监听客户端连接

if (listen(serverSocket, 5) == SOCKET_ERROR) {printf("Listen failed.\n");closesocket(serverSocket);WSACleanup();
}

接受客户端连接

if ((clientSocket = accept(serverSocket, (struct sockaddr*)&clientAddr, &clientAddrLen)) == INVALID_SOCKET) {printf("Accept failed.\n");closesocket(serverSocket);WSACleanup();
}

接收

int bytesReceived = recv(clientSocket, (char*)(_sRxBuffer + _sRxLenght), BUFFER_SIZE, 0);

发送

int txPacketlenght = send(socket, (const char*)_sTxBuffer, txPacketlenght, 0);

回收socket资源

closesocket(clientSocket);
closesocket(serverSocket);
WSACleanup();

相关文章:

一个简单的Windows TCP服务器实现

初始化 WSADATA wsaData; SOCKET serverSocket, clientSocket; struct sockaddr_in serverAddr { 0x00 }; struct sockaddr_in clientAddr { 0x00 }; int clientAddrLen sizeof(clientAddr);if (WSAStartup(MAKEWORD(2, 2), &wsaData) ! 0) {printf("WSAStartup f…...

Node.js笔记入门篇

黑马程序员视频地址: Node.js与Webpack-01.Node.js入门 基本认识 概念 定义:Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本 作用:使用Node.js 编写服务器端程序 ✓ …...

EX_25/2/10

epoll实现多路客户端之间的登录注册及消息和文件传输 服务器部分 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include…...

python视频爬虫

文章目录 爬虫的基本步骤一些工具模拟浏览器并监听文件视频爬取易错点一个代码示例参考 爬虫的基本步骤 1.抓包分析&#xff0c;利用浏览器的开发者工具 2.发送请求 3.获取数据 4.解析数据 5.保存数据 一些工具 requests, 用于发送请求&#xff0c;可以通过get&#xff0c;p…...

RbFT:针对RAG中检索缺陷的鲁棒性微调

今天给大家分享一篇最新的RAG论文&#xff1a; 论文题目&#xff1a;Enhancing Retrieval-Augmented Generation: A Study of Best Practices 论文链接&#xff1a;https://arxiv.org/pdf/2501.18365 论文代码&#xff1a;https://github.com/StibiumT16/Robust-Fine-tuning 研…...

证明: 极限的局部有界性

在考研数学中&#xff0c;极限的局部有界性是一个非常重要的概念&#xff0c;尤其是在讨论函数的连续性、可积性和可微性等性质时。局部有界性可以帮助我们理解函数在某些区域内的行为。 定理&#xff1a; 如果 lim ⁡ x → x 0 f ( x ) L \lim_{x \to x_0} f(x) L limx→x0…...

51单片机俄罗斯方块计分函数

/************************************************************************************************************** * 名称&#xff1a;scoring * 功能&#xff1a;计分 * 参数&#xff1a;NULL * 返回&#xff1a;NULL * 备注&#xff1a;采用非阻塞延时 ****************…...

new 以及 call、apply、bind 关键字解析

1.new关键字 自动创建对象&#xff1a;使用new调用构造函数时&#xff0c;会自动创建一个空对象&#xff0c;并将其赋值给this。你不需要显式地使用{}来创建对象。 绑定this到新对象&#xff1a;构造函数内部的this指向新创建的对象&#xff0c;因此可以在构造函数中为新对象添…...

【用Deepseek搭建免费的个人知识库--综合教程(完整版)】第二篇:Ollama服务器

用Deepseek搭建免费的个人知识库–综合教程&#xff08;完整版&#xff09;&#xff1a;第二篇&#xff1a;Ollama服务器部署 OLLAMA服务器的配置在很多网上都已经介绍的非常清楚了&#xff0c;我们的重点不在于那些简单的步骤&#xff0c;而是在需要为下一步做准备的地方更加…...

【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现

医院在为患者进行诊断和治疗过程中&#xff0c;会产生大量的医学影像图片&#xff0c;如 X 光片、CT 扫描图、MRI 图像等。这些图片通常会按照检查时间或者检查项目存放在不同的文件夹中。为了方便医生查阅和患者病历的长期保存&#xff0c;需要将每个患者文件夹下的图片合并成…...

从基础到人脸识别与目标检测

前言 从本文开始&#xff0c;我们将开始学习ROS机器视觉处理&#xff0c;刚开始先学习一部分外围的知识&#xff0c;为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。我采用的笔记本是联想拯救者游戏本&#xff0c;系统采用Ubuntu20.04&#xff0c;ROS采用noetic。 颜…...

Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用

在这个春节&#xff0c;如一声春雷&#xff0c;DeepSeek R1 横空出世。现在人人都在谈论 DeepSeek R1。这个大语言模型无疑在中国及世界的人工智能发展史上留下了重要的里程碑。那么我们改如何结合 DeepSeek R1 及 Elasticsearch 来实现 RAG 呢&#xff1f;在之前的文章 “使用…...

寒假2.6--SQL注入之布尔盲注

知识点 原理&#xff1a;通过发送不同的SQL查询来观察应用程序的响应&#xff0c;进而判断查询的真假&#xff0c;并逐步推断出有用的信息 适用情况&#xff1a;一个界面存在注入&#xff0c;但是没有显示位&#xff0c;没有SQL语句执行错误信息&#xff0c;通常用于在无法直接…...

CTF中特别小的EXE是怎么生成的

我们在打CTF时候&#xff0c;出题的爷爷们给出的exe都很小 就10k左右&#xff0c;有的甚至就5k&#xff0c;那时候我很郁闷啊。现在我也能了啊哈哈 不多bb按如下操作&#xff1a; 我们来看看正常的release生成的代码# Copy #include "windows.h" int main(){ Messa…...

git rebase 和 git merge的区别

Rebase 可使提交树变得很干净, 所有的提交都在一条线上。 Merge 则是包含所有的调试记录&#xff0c;合并之后&#xff0c;父级的所有信息都会合并在一起 Rebase 修改了提交树的历史 比如, 提交 C1 可以被 rebase 到 C3 之后。这看起来 C1 中的工作是在 C3 之后进行的&#xf…...

Gitlab中如何进行仓库迁移

需求&#xff1a;之前有一个自己维护的新仓库A&#xff0c;现在需要将这个仓库提交并覆盖另一个旧的仓库B&#xff0c;需要保留A中所有的commit信息。 1.方法一&#xff1a;将原有仓库A导出后再导入到新的仓库B中 适用场景&#xff1a;新的仓库B是一个待建仓库&#xff0c;相当…...

LabVIEW 开发航天项目软件

在航天项目软件开发中&#xff0c;LabVIEW 凭借其图形化编程优势被广泛应用。然而&#xff0c;航天项目的高可靠性、高精度及复杂环境适应性要求&#xff0c;使得在使用 LabVIEW 开发时&#xff0c;有诸多关键要点需要特别关注。本文将详细分析在开发航天项目软件时需要重点注意…...

深度整理总结MySQL——MySQL加锁工作原理

MySQL加锁工作原理 前言前置知识- 锁为什么加在索引上锁的粒度优化提高并发性避免全表扫描优化死锁处理解决幻读问题 什么SQL语句会加行级锁MySQL是如何加行级锁场景模拟代码唯一索引等值查询退化为记录锁为什么会退化为记录锁分析加了什么锁为什么会退化为间隙锁为什么我可以插…...

kafka专栏解读

kafka专栏文章的编写将根据kafka架构进行编写&#xff0c;即先编辑kafka生产者相关的内容&#xff0c;再编写kafka服务端的内容&#xff08;这部分是核心&#xff0c;内容较多&#xff0c;包含kafka分区管理、日志存储、延时操作、控制器、可靠性等&#xff09;&#xff0c;最后…...

1-portal认证功能

很多时候公共网络需要提供安全认证功能&#xff0c;比如我们去星巴克或者商场、酒店&#xff0c;我们连接wifi上网的时候&#xff0c; 需要认证后才可以上网。 用户可以主动访问已知的Portal认证网站&#xff0c;输入用户名和密码进行认证&#xff0c;这种开始Portal认证的方式…...

别再只会用ST-Link了!手把手教你用串口给STM32F103C8T6远程更新固件(IAP实战)

突破有线束缚&#xff1a;基于串口的STM32F103C8T6固件无线更新实战指南 当你的STM32开发板被嵌入产品外壳深处&#xff0c;当生产线上的设备需要批量升级&#xff0c;当野外部署的传感器需要修复漏洞——传统ST-Link烧录方式立刻显得笨拙不堪。本文将揭示如何仅用5元的USB转TT…...

零代码部署:用Ollama快速搭建TranslateGemma-4B翻译服务

零代码部署&#xff1a;用Ollama快速搭建TranslateGemma-4B翻译服务 1. 为什么选择TranslateGemma-4B Google推出的TranslateGemma-4B是目前最先进的轻量级开源翻译模型之一。这个基于Gemma 3架构的模型专为多语言翻译任务设计&#xff0c;支持55种语言的互译&#xff0c;特别…...

WorkshopDL:跨平台资源获取的开源工具解决方案

WorkshopDL&#xff1a;跨平台资源获取的开源工具解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 在游戏模组生态中&#xff0c;跨平台资源访问与高效下载一直是技术爱…...

绕过 Cloudflare 防护:Puppeteer 与 Node.js 的实战指南

1. 为什么需要绕过Cloudflare防护&#xff1f; 最近几年做自动化项目的开发者应该都深有体会&#xff0c;Cloudflare的安全防护越来越难对付了。我去年帮一个电商公司做价格监控系统时就踩过坑&#xff0c;他们的网站用了Cloudflare Turnstile防护&#xff0c;普通的爬虫根本过…...

Java开发必备:高德、百度、WGS84坐标互转实战(附完整代码)

Java开发实战&#xff1a;高德、百度与WGS84坐标系互转解决方案 当你需要在不同地图服务之间切换时&#xff0c;坐标系的差异往往会成为开发中的痛点。想象一下这样的场景&#xff1a;你的应用同时接入了高德地图和百度地图&#xff0c;用户上传的GPS数据却无法在两个平台上准确…...

RTX4090D显存优化:OpenClaw长文本处理实测Qwen3-32B性能

RTX4090D显存优化&#xff1a;OpenClaw长文本处理实测Qwen3-32B性能 1. 测试背景与实验设计 去年我在处理学术论文时&#xff0c;经常遇到需要分析几十页PDF的情况。传统工具要么截断文本&#xff0c;要么丢失关键上下文。当我发现OpenClaw支持本地部署大模型后&#xff0c;立…...

OpenClaw安全防护指南:Qwen3-32B镜像对接时的权限控制策略

OpenClaw安全防护指南&#xff1a;Qwen3-32B镜像对接时的权限控制策略 1. 为什么需要安全防护&#xff1f; 去年我在尝试用OpenClaw自动整理财务报表时&#xff0c;曾因为一个简单的"读取桌面所有Excel文件"指令&#xff0c;差点导致包含客户隐私的文档被误传到测试…...

人工智能|大模型 —— 量化 —— 一文搞懂大模型量化技术:GGUF、GPTQ、AWQ

目前关于大模型量化技术的文章层出不穷&#xff0c;但对其理论部分的深入探讨却相对较少。本文将对大模型量化技术进行系统性的介绍&#xff0c;并重点聚焦于理论层面的深入解析。 一、大模型量化基础 大模型量化的核心在于将模型参数的精度从较高的位宽&#xff08;bit-width…...

别再手动校正了!用Landsat 9 L2SP地表反射率数据,在QGIS里5分钟搞定NDVI和水体提取

遥感分析效率革命&#xff1a;用Landsat 9 L2SP数据在QGIS中实现5分钟精准制图 当遥感数据处理流程从传统数小时缩短至五分钟&#xff0c;这意味着什么&#xff1f;去年在亚马逊雨林监测项目中&#xff0c;我们团队曾因大气校正步骤延误错过了最佳干预时机。如今Landsat 9 L2SP…...

【限时开放】Mojo-Python互操作安全边界图谱(2024 Q3最新CVE影响评估+3类高危反模式代码扫描规则),错过将无法适配Mojo v1.2+运行时

第一章&#xff1a;Mojo-Python互操作安全边界图谱概览Mojo 作为面向 AI 原生开发的系统级编程语言&#xff0c;其与 Python 的互操作并非简单语法兼容&#xff0c;而是在运行时、内存模型、类型系统与异常传播四个维度上构建了显式、可审计的安全边界。这些边界共同构成一张动…...