MFC -- 网络通信编程

简介: MFC -- 网络通信编程

一、创建服务端


1、新建一个控制台应用程序,添加源文件server


2、添加代码框架


#include <iostream>
#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")//包含库文件
int main()
{
    return  0;
}

3、初始化socket库


WSAData wd = { 0 };
WSAStartup(MAKEWORD(2, 2), &wd);//以2.2版本为例,参数后面为主版本号

4、通信

void TCPServer()
{
    //创建socket
    SOCKET hSockser = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    if (hSockser == INVALID_SOCKET)//创建套接字失败
    {
        return;
    }
    //绑定ip和端口
    SOCKADDR_IN addrser = { 0 };
    addrser.sin_family = AF_INET;
    addrser.sin_port = htons(8848);
    addrser.sin_addr.S_un.S_addr = INADDR_ANY;//任意地址
    bind(hSockser, (SOCKADDR*)&addrser, sizeof(addrser));
    //监听
    listen(hSockser, 5);//处理客户端的数量
    //等待接收客户端连接
    printf("等待接收客户端连接。。\n");
    SOCKADDR_IN addrClient = { 0 };
    int len = sizeof(addrClient);
    SOCKET hSockClient= accept(hSockser, (SOCKADDR*)&addrClient, &len);
    printf("已经与客户端建立连接。。\n");
    //通信
    //服务器首先接受数据
    char szBuff[256] = { 0 };
    int nRecv = recv(hSockClient, szBuff, 256, 0);
    char* ip = inet_ntoa(addrClient.sin_addr);
    printf("%s:%s,%d", ip, szBuff, nRecv);
    //关闭
    closesocket(hSockser);
    closesocket(hSockClient);
}


5、卸载


WSACleanup();


二、创建客户端


1、新建一个空项目,添加cpp文件


2、添加代码框架


#include <iostream>
#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")//包含库文件
int main()
{
    return  0;
}

3、初始化socket库


WSAData wd = { 0 };
WSAStartup(MAKEWORD(2, 2), &wd);//以2.2版本为例,参数后面为主版本号

4、通信


void TCPClient()
{
    //创建socket
    SOCKET hSockclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (hSockclient == INVALID_SOCKET)//创建套接字失败
    {
        return;
    }
    //连接服务器
    SOCKADDR_IN addrser = { 0 };
    addrser.sin_family = AF_INET;
    addrser.sin_port = htons(8848);
    addrser.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    connect(hSockclient, (SOCKADDR*)&addrser, sizeof(addrser));
    //通信
    //客户端首先发送数据
   const char * szSend ="aiyou bucuo";
    send(hSockclient, szSend ,strlen(szSend), 0);
    //关闭
    closesocket(hSockclient);
    getchar();
}


5、卸载

WSACleanup();

6、运行结果

0a2653c851af460fa595bd959398a8f1.png

目录
相关文章
|
20天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
22天前
|
存储 Python
Python网络编程基础(Socket编程)UDP客户端编程
【4月更文挑战第9天】在UDP通信中,客户端负责发送数据到服务器,并接收来自服务器的响应。与服务器不同,客户端通常不需要绑定到特定的地址和端口,因为它可以临时使用任何可用的端口来发送数据。下面,我们将详细讲解UDP客户端编程的基本步骤。
|
2月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
94 0
|
2月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
16天前
|
SQL 安全 Java
Java安全编程:防范网络攻击与漏洞
【4月更文挑战第15天】本文强调了Java安全编程的重要性,包括提高系统安全性、降低维护成本和提升用户体验。针对网络攻击和漏洞,提出了防范措施:使用PreparedStatement防SQL注入,过滤和转义用户输入抵御XSS攻击,添加令牌对抗CSRF,限制文件上传类型和大小以防止恶意文件,避免原生序列化并确保数据完整性。及时更新和修复漏洞是关键。程序员应遵循安全编程规范,保障系统安全。
|
19天前
|
分布式计算 监控 Hadoop
Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
56 0
|
23天前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
2月前
|
缓存 网络协议 数据库连接
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
24 0
|
2月前
|
资源调度 JavaScript 前端开发
|
3月前
|
C++
MFC -- 网络通信编程
MFC -- 网络通信编程
13 0