首页 > 系统相关 >windows下socket客户端编程示例

windows下socket客户端编程示例

时间:2024-03-30 11:30:38浏览次数:34  
标签:include struct family 示例 windows res addrinfo NULL socket

在这里插入图片描述

#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>


#pragma comment (lib, "Ws2_32.lib")



int socket_client_demo(char* addr, int port) {
	char recvbuf[1024] = { 0 };
	int retVal = -1;
#if defined(_WIN32) || defined(_WIN64)
	short family;
#else
	sa_family_t family = AF_INET;
#endif
	WSADATA ws;
	SOCKET sock;
	struct sockaddr_in address;
#if defined(AF_INET6)
	struct sockaddr_in6 address6;
#endif
	struct addrinfo* result = NULL;
	struct addrinfo hints = { 0, AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, 0, NULL, NULL, NULL };
	if (WSAStartup(MAKEWORD(2, 2), &ws) != 0)
	{
		goto exit;
	}
	retVal = getaddrinfo(addr, NULL, &hints, &result);
	if (retVal == 0)
	{
		struct addrinfo* res = result;
		while (res)
		{	/* prefer ip4 addresses */
			if (res->ai_family 

标签:include,struct,family,示例,windows,res,addrinfo,NULL,socket
From: https://blog.csdn.net/qq_45662588/article/details/137106527

相关文章

  • 浅谈Windows发展史
    简介从微软发布Windows1.0开始,到现在已经有快40年历史了,接下来让我们浅浅的谈一下微软的发展史(只记录大家都知道的)Windows1.0Windows1.0是微软于1985年11月20日发布的操作系统,这也是微软第一个图形化操作系统。基本的功能也是有了。Windows2.0Windows2.0是微软于1987......
  • 虚拟机安装windows2000
    简介Windows2000是第一个被广泛家庭使用的基于NT的系统(其实原来2000是给公司和服务器用的,家用的是me,当时微软可能压根没想把家用电脑的内核改成NT),其稳定性高,不像me容易蓝屏,原因就是内核不同,me基于dos,2000基于NT,原来NT是给服务器用的,但是me稳定性太差,导致大部分人都用2000,是微......
  • CrossOver2024最新免费版虚拟机软件 Mac和Linux系统上运行Windows 应用/游戏 CrossOve
    CrossOver是一款由CodeWeavers公司开发的,运行在Mac和Linux操作系统下,能够模拟Windows系统应用运行环境的软件。它不需要用户单独安装Windows操作系统,就能让Windows平台上的应用程序在Mac和Linux上顺畅运行。CrossOver在技术上使用了Wine(Windows模拟器)的代码,通过提供一个兼容层,......
  • Linux中远程连接Windows远程桌面(3389)相关命令总结
    在做Windows靶机时,一般靶机开放着3389端口,Linux中有很多工具,这里总结一下经常使用的,这里会使用到三个工具rdesktopxfreerdpremminardekstop在kali中自带这个命令,如果没有可以使用aptinstallrdesktop安装。常用的连接命令如下rdesktop-uhacker-p123456-rclipboar......
  • JWT示例与原理
    简介JWT(JSONWebToken)是一种去中心化的web认证方案,信息存储在客户端。数据结构JWT通常由3部分组成,Header、Payload、Signature。每个部分都是用Base64Url编码后的字符串,每个部分之间由点分割。形如Header.Payload.Signature注:Base64Url是Base64的一个变种,主要是将Base6......
  • 第11章 使用类——运算符重载(一)一个简单的运算符重载示例(Time类对象的加法)
    本文章是作者根据史蒂芬·普拉达所著的《C++PrimerPlus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。运算符重载我们先了解下函数重载的概念,函数重载,也叫函数多态,指的是用......
  • windows下nginx-rtmp-module的编译方法
    ForewordLinux为当前nginx添加rtmp模块非常的方便,sudo./configure--add-module+sudomake就完事儿了,但是windows比较复杂,没有包管理器,所以各个模块的源码要自己找,下面是我在windows11下的nginxwithrtmpmodule的编译记录。编译器工具链大概有msvctoolchain,perl......
  • ktpass命令是Windows Server上的一个命令行工具,用于创建和管理Kerberos密钥表(Keytab)
    ktpass命令是WindowsServer上的一个命令行工具,用于创建和管理Kerberos密钥表(Keytab)。它允许管理员将用户帐户或服务帐户的凭据导出到一个可由其他系统使用的文件中,以便进行身份验证和授权。这个工具通常用于在Windows和Unix/Linux系统之间建立单点登录(SSO)的集成。通过ktpass命......
  • getmac 是一个 Windows 系统命令,用于显示指定计算机上的网络适配器的物理地址(MAC 地址
    getmac是一个Windows系统命令,用于显示指定计算机上的网络适配器的物理地址(MAC地址)。MAC地址是唯一标识网络设备的地址,通常由6组十六进制数字组成,用于在局域网中唯一标识网络设备。使用getmac命令可以查看计算机上每个网络适配器的MAC地址,这对于网络管理员来说是一个很......
  • Windows安装CUDA 12.1及cudnn
    下载CUDA打开链接(https://developer.nvidia.com/cuda-toolkit-archive)选择 12.1.1 版本 选择Windows->x86_64->10->exe(local)->Download  下载完成后按提示安装到默认路径 下载cudnn点击进入nVidia下载cudnn(https://developer.download.nvidia.com/co......