MFC基于windows套接字函数代码示范

2024-04-30 03:38

本文主要是介绍MFC基于windows套接字函数代码示范,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源文件下载:  MFC_TCP_Client_chat1.rar

关键代码:

void CMFC_TCP_Client_chat1Dlg::OnBnClickedButtonSend() //登录按钮
{// TODO: 在此添加控件通知处理程序代码//sockaddr_in serveraddr;CString strport;m_ServerIP.GetWindowTextA(m_IP);m_ServerPort.GetWindowText(strport);if (strport.IsEmpty() || m_IP.IsEmpty()){MessageBox("请设置服务器IP和端口号");return;}m_Port = atoi(strport); //字符转整数serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(m_Port);serveraddr.sin_addr.S_un.S_addr = inet_addr(m_IP);//inet_addr,字符串转IP
//	serveraddr.sin_addr.S_un.S_addr = InetPton(m_IP);if(connect(m_SockClient,(sockaddr*)&serveraddr,sizeof(serveraddr))!=0)//if (connect(m_SockClient, (sockaddr*)&serveraddr, sizeof(serveraddr)) == NULL){MessageBox("连接失败");return;}elseMessageBox("连接成功");DWORD nError = GetLastError();WSAAsyncSelect(m_SockClient,m_hWnd, CM_RECEIVE, FD_READ);//WSAAsyncSelect(m_SocketClient,m_hWnd,1000,FD_READ);//::WSAAsyncSelect(m_SocketClient,this->m_hWnd,CM_RECEIVE,FD_READ);//WSAAsyncSelect(m_SocketClient,m_hWnd,WM_USER+1000,FD_READ);CString strname, info;m_NickName.GetWindowTextA(strname);info.Format("%s-------->%s", strname, "进入聊天室了");send(m_SockClient, info.GetBuffer(0), info.GetLength(), 0);//MessageBox("already send");m_MsgList2.AddString(info);}HRESULT CMFC_TCP_Client_chat1Dlg::ReceiveInfo(WPARAM wParam, LPARAM lParam)
{char buffer[1024];if (lParam == FD_READ){int num = recv(m_SockClient, buffer, 1024, 0);if (num == -1)return E_NOTIMPL;buffer[num] = 0;m_MsgList2.AddString(buffer);}return E_NOTIMPL;
}void CMFC_TCP_Client_chat1Dlg::OnBnClickedButton2() //发送按钮
{// TODO: 在此添加控件通知处理程序代码CString strData, name, info;m_NickName.GetWindowTextA(name);//m_SendData.GetWindowTextA(info);m_SendData.GetWindowTextA(strData);//if(!name.IsEmpty()&&!info.IsEmpty())if (!name.IsEmpty() && !strData.IsEmpty()){info.Format("%s说:%s", name, strData);send(m_SockClient, info.GetBuffer(0), info.GetLength(), 0);m_MsgList2.AddString(info);m_SendData.SetWindowText("");}else{MessageBox("未连接或未输入");}
}

初始化位置添加:

// TODO: 在此添加额外的初始化代码m_SockClient = socket(AF_INET,SOCK_STREAM,0);m_ServerIP.SetWindowTextA("127.0.0.1");m_ServerPort.SetWindowTextA("6666");//::WSAAsyncSelect(m_SockClient, this->m_hWnd, CM_RECEIVE, FD_READ);DWORD error = GetLastError();m_NickName.SetWindowText("txwtech");

BOOL CMFC_TCP_Client_chat1App::InitInstance()里面添加:

if (!AfxSocketInit()) //new added,初始化套接字
 {
  //AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  return FALSE;
 }

stdafx.h中添加:

#include "afxsock.h"

源文件下载:

 

这篇关于MFC基于windows套接字函数代码示范的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/947820

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调