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、运行结果

image.png

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