基于TCP的window的Socket编程

windows下基于TCP实现socket通信,采取半关闭shutdown方式 1.win平台下进行socket通信的开发首先需要包含头文件#include<winsock2.h>,其次需要加载库WS2_32.lib(怎么加载可以看我的关于制作dll的博文) 2.开始贴代码,代码有注释(如果想拷贝代码直接运行的话需要完成以下两步:1.正确完成第一步操作,2.在server.cpp的文件目录下创建file.txt,并写入内容;在client.cpp的目录下创建re... 阅读详情

一、服务器端

#include <winsock2.h>
#include <stdio.h>

void main()
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;

	wVersionRequested = MAKEWORD( 1, 1 );

	err = WSAStartup( wVersionRequested, &wsaData );
	if ( err != 0 ) {

		return;
	}

	if ( LOBYTE( wsaData.wVersion ) != 1 ||
		HIBYTE( wsaData.wVersion ) != 1 ) {
                                
			WSACleanup( );
			return; 
	}

	SOCKET socketSrc = socket(AF_INET , SOCK_STREAM , 0) ;

	SOCKADDR_IN addrSrc ;
	addrSrc.sin_addr.S_un.S_addr = htonl(INADDR_ANY) ;
	addrSrc.sin_family = AF_INET ;
	addrSrc.sin_port = htons(6000) ;

	bind(socketSrc , (SOCKADDR * )&addrSrc , sizeof(SOCKADDR)) ;

	listen(socketSrc , 5) ;

	SOCKADDR_IN addrClient ;
	INT len = sizeof(SOCKADDR) ;

	while (1)
	{
		SOCKET sockConn= accept(socketSrc , (SOCKADDR *)&addrClient , &len) ;
		//TCHAR szBuffer[] = TEXT("Welcome %s to me" , inet_ntoa(addrClient.sin_addr));
		
		char szSend[100] ;
		sprintf(szSend , "Welcome %s to me" , inet_ntoa(addrClient.sin_addr)) ;
		send(sockConn , szSend , strlen(szSend) + 1 , 0) ;

		char szRecv[100] ;
		recv(sockConn , szRecv , 100 , 0) ;
		printf("%s\n" , szRecv) ;
		closesocket(sockConn) ;
	}

}

二、客户端

#include <winsock2.h>
#include <stdio.h>

void main()
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;

	wVersionRequested = MAKEWORD( 1, 1 );

	err = WSAStartup( wVersionRequested, &wsaData );
	if ( err != 0 ) {

		return;
	}

	if ( LOBYTE( wsaData.wVersion ) != 1 ||
		HIBYTE( wsaData.wVersion ) != 1 ) {

			WSACleanup( );
			return; 
	}

	SOCKET sockClient = socket(AF_INET , SOCK_STREAM , 0) ;

	SOCKADDR_IN addrSrc ;
	addrSrc.sin_addr.S_un.S_addr = inet_addr("127.0.0.1") ;
	addrSrc.sin_family = AF_INET ;
	addrSrc.sin_port = htons(6000) ;

	connect(sockClient , (SOCKADDR *)&addrSrc , sizeof(SOCKADDR)) ;

	char szRecv[100] ;
	recv(sockClient , szRecv , 100 , 0) ;

	send(sockClient , "zhang san" , strlen("zhang san") + 1 , 0) ;

	printf("%s\n" , szRecv) ;

	closesocket(sockClient) ;

	WSACleanup( );
	system("pause") ;
}


【Socket编程】套接字Windows平台C语言实现 Socket API在windows平台下的基础代码。 阅读详情

相关推荐

Windows下实现C语言Socket通讯TCP传送结构体信息

版权声明:本文为博主原创文章,未经博主允许不得转载 Windows下实现C语言Socket通讯 <TCP传送结构体信息> 首先socket通信的步骤: 三次握手协议 三次握手协议 代码 服务器端 #include <stdio.h> #include <WinSock2.h> #include...

qq_36082072的博客 1534

基于TCP的socket编程实现client和server通信

基于TCP的socket编程实现client和server通信 . 实验内容: . client为单线程、server为多线程(群聊功能) . 原理: . 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。 . 环境: . Python 3.8.2、Wind...

qq_42404383的博客 3922

基于socket的简单网络程序设计

基于socket的简单网络程序设计 1、实验目的与要求: (1)初步掌握TCP和UDP方式的网络编程模式。 (2)能运用Winsock提供的API函数接口进行网络程序的编写。 2、实验准备和说明: (1)要求掌握流式和数据报socket的编程模式和实现。 (2)创建本次实验工作文件夹“…\实验\实验4”。 3、实验内容与步骤:       1)工

奋起的Coder。。。 5831

【网络编程】windows下的TCP通信(server/client)

server.cpp #include <iostream> //#include "stdafx.h" #include <winsock2.h> #pragma comment(lib,"ws2_32.lib") using namespace std; int main(){ WSADATA wsaData; if(WSAStartup(MAKEWORD(2,2),&wsaData)){ cout<<"WinSock不能被初始化"; WSACle

VICI的博客 2828

【socket编程】TCP、UDP通信你会了吗?

摘要:还在学校的朋友,如果感觉到很迷茫,不知道学什么的时候,可以上招聘网站上看看自己未来工作相关的职位的任职要求,这样就可以总结自己的一些不足、比较有针对性的去学习。不要觉得自己会玩个单片机就很NB,时刻提醒自己还很菜,要学的还有很多,不然想找高工资是没有门的,除非你家你有矿!今天来说说嵌入式必备技能之一Socket编程。 一、什么是socket? Socket的英文原义是“孔”或“插座”。在编程中,Socket被称做 套接字,是网络通信中的一种约定。Socket编程的应用无处不在,我们平时用的QQ、微信、

果果小师弟的博客 699

瑞数6.5逆向实战:手把手教你用RPC搞定cookie sign加密(附环境补全技巧)

本文深入解析瑞数6.5逆向实战,重点探讨如何结合环境补全与RPC调用技术来应对其动态加密机制。文章详细介绍了环境指纹采集、双重验证等核心防护原理,并提供了基于Puppeteer的RPC实现方案,手把手教你搞定cookie sign加密,附有实用的环境补全技巧与完整代码示例。

weixin_29315091的博客 1273

Windows/Linux TCP Socket网络编程简介及测试代码

典型的网络应用是由一对程序(即客户程序和服务器程序)组成的,它们位于两个不同的端系统中。当运行这两个程序时,创建了一个客户进程和一个服务器进程,同时它们通过从套接字(socket)读出和写入数据在彼此之间进行通信。开发者创建一个网络应用时,其主要任务就是编写客户程序和服务器程序的代码。 网络应用程序有两类。一类是由协议标准(如一个RFC或某种其它标准文档)中所定义的操作的实现,这样的应用程序有时称为”开放”的,因为定义其操作的这些规则为人们所共知。对于这样的实现,客户程序和服务器程序必须遵守由该RFC所规

网络资源是无限的 1851

基于CANoe的Basic Diagnostics ECU (UDS)

基于CANoe的Basic Diagnostics ECU (UDS)

farmer00的博客 9155

基于Tcp穿越的Windows远程桌面(远程桌面管理工具)

基于Tcp穿越的Windows远程桌面(远程桌面管理工具) 1.《C# WinForm 跨线程访问控件(实用简洁写法)》 2.《基于.NET环境,C#语言 实现 TCP NAT》 3.《基于Tcp穿越的Windows远程桌面(远程桌面管理工具)》 距离上一篇文章《基于.NET环境,C#语言 实现 TCP ...

anguona0764的博客 673

士兰微SC7A20H三轴加速度计在智能穿戴设备中的运动检测实践

本文详细介绍了士兰微SC7A20H三轴加速度计在智能穿戴设备中的运动检测实践,包括其工作原理、硬件设计避坑指南、运动检测算法优化、低功耗设计及校准测试技巧。SC7A20H凭借±16g超宽量程和0.004g高精度,成为智能穿戴设备的运动感知核心,适用于计步、6D方向检测等场景,显著提升用户体验。

weixin_29168153的博客 745

ROS教程(四):RVIZ使用教程(详细图文)

前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

Leslie的博客 17万+

window下TCP socket编程

1.Socket是什么呢?  Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

jw903的专栏 844

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

TCP/IP协议学习笔记(三)Window下socket编程(一)TCP

Visual Studio实现socket通信 DLL的加载 使用#pragma命令,在编译时加载: #pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll 使用DLL之前,还需要调用 WSAStartup() 函数进行初始化,以指明 WinSock 规范的版本,它的原型为: int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); wVersionRequested 为 WinSock 规范

熠熠L的博客 3542

YOLO11有效改进专栏目录

YOLO11改进专栏导航

A1983Z的博客 3686

OpenClaw实战三|电商自动化AI工具:自动上下架+智能客服+订单统计,小店运营效率直接翻3倍

对电商小团队、夫妻店、个人商家来说,最缺的不是流量,而是省时间的工具。OpenClaw这套电商自动化AI工具,不用懂代码、不用买昂贵的SaaS软件,一台服务器、简单配置,就能把最耗时间的工作全部交给AI。人只做最有价值的事:选品、拍图、搞流量、处理复杂售后,剩下的上下架、回复、统计,全都让AI帮你打工。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1462

Linux网络编程:TCP/IP协议与Socket实战详解

TCP/IP协议族是网络通信的核心基础,从IP地址分配到高并发连接处理都依赖这套体系。其工作原理涉及分层封装、三次握手、流量控制等关键机制,通过协议头部字段如序列号、窗口大小实现可靠传输。在Linux环境下,Socket编程接口将协议栈能力暴露给开发者,结合epoll等IO模型可构建高性能服务。实际应用中常需处理MTU问题、TCP状态机优化等场景,通过netstat、tcpdump等工具能有效排查网络异常。掌握这些知识对开发IM系统、调试K8s网络等问题至关重要,也是云计算、物联网等领域的基础技能。

weixin_29698641的博客 327

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【socket编程】TCP、UDP通信总结

一、什么是socket? Socket的英文原义是“孔”或“插座”。在编程中,Socket被称做 套接字,是网络通信中的一种约定。Socket编程的应用无处不在,我们平时用的QQ、微信、浏览器等程序,都与Socket编程有关。我们平时使用浏览器查资料,这个过程的技术原理是怎样的呢? 我们平时使用浏览器,大致就是这样的一个过程。这里有两个重要的名词: 服务端与 客户端。 Socket编程的目的就是如何实现这两端之间的通信。 1、Socket编程在嵌入式中也很重要 Socket编程不仅仅在互联网方面很重要,在我

果果小师弟的博客 4772

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++ socket编程基础二(三种Socket:TCP,UDP,原始Socket)

一、基于TCP(面向连接)的的Socket   1、服务器端   创建套接字 SOCKET socket( int af, //参数af指定通信发生的区域:AF_UNIX、AF_INET、AF_NS等,而DOS、 WINDOWS中仅支持AF_INET,它是网际网区域。因此,地址族与协议族相同。 int type, //参数type 描述要建立的套接字的类型。这里分三种:TCP

蚂蚁的坚持 6146

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TCP协议核心机制与实战调优指南

TCP协议作为传输层的核心协议,通过连接管理、可靠传输和流量控制三大机制保障网络通信质量。其可靠性设计基于序列号确认和超时重传原理,确保数据有序到达的同时,通过滑动窗口机制实现动态流量控制。在分布式系统和高并发场景中,TCP的拥塞控制算法和内核参数配置直接影响吞吐量和延迟表现。针对电商秒杀、视频直播等典型应用场景,合理调整tcp_rmem/wmem缓冲区大小、启用SACK选择性确认等优化手段,可显著提升传输效率。通过Wireshark抓包分析和ss/netstat等工具监控,能够快速定位SYN Flood攻

weixin_30328063的博客 338

(含源码)基于TCP的Socket编程学习总结

一、Socket编程介绍 1.什么是Socket (1)Socket即套接字,用于描述地址和端口。应用程序通过Socket向网络发出请求或者回应。 (2)Socket就是操作系统提供给程序员操作【网络协议栈】的接口,我们可以通过Socket接口来控制协议栈工作,从而实现跨主机的网络通信。 2.Socket编程原理 (1)Socket编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW)。最常用的是SOCK_STREAM、SO

abcdefz的博客 5077

windows socket 网络编程

<br />例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar。1         前言<br />在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是大部分都是基于S

xxbsky520的专栏 2万+

Window网络编程之简单TCP建立

Windows下Socket编程之简单TCP通信步骤分解搭建SOCKET开发环境开发环境说明启动SOCKET说明创建TCP服务器创建SOCKET原型使用绑定端口原型使用监听连接原型使用连接客户端原型使用向客户端发送数据原型使用关闭服务器原型使用创建TCP客户端创建SOCKET使用连接服务器原型使用接收数据原型使用运行结果 步骤分解 服务端建立 步骤说明 涉及函数 建立服务端SOCKET socket 绑定服务IP和端口 bind 监听网络端口 listen 等待建立连接 ac

会写BUG 1232

看完之后保证你对socket编程步骤胸有成竹。 C++ Socket网络编程基础详解(TCP)

本文中我会根据windows下中使用C++以及socket进行网络编程的步骤,一步步的讲解网络编程的步骤,以及这些步骤中涉及到的定义,方法。力求你看完之后对socket编程步骤胸有成竹。

weixin_45704279的博客 5115
上一篇: 基于UDP的windows网络Socket编程
下一篇: VS2012下创建DLL的一种简单方便方式
知行且执行
博客等级 码龄14年 38粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值