- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 怎么连接服务器 连接服务器 用connect()函数在套接字s上连接smtp服务器
使用该函数在套接字 s 上连接SMTP服务器例如 SMTP服务器的地址为 “mail.163.com”端口为25BOOL CMyEMAIL::OnInitDialog(){ DWORD ss=MAKEWORD(2,0); //指定套接字库版本 ::WSAStartup(ss,&data); //初始化套接字库 SOCKET s; //定义套接字对象 hostent h...
2019-03-31 20:34:44 503
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 怎么连接服务器 连接服务器 connect()原型
用户创建好套接字后 可以调用API函数connect()连接服务器原型如下int connect { SOCKET s, const struct sockaddr FAR* name, int namelen};该函数用于连接远程计算机 如果连接失败则返回-1否则成功,参数及其意义参数s表示将要连接服务器的套接字句柄该套接字是用户之前已经创建好的套接字句柄参数name是指...
2019-03-30 18:22:56 161
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 怎么连接服务器 创建套接字对象 创建连接服务器的套接字
用户可以调用API函数socket()创建连接服务器的套接字BOOL CMyEMAIL::OnInitDialog(){... //省略部分代码SOCKET s; //定义套接字对象sockaddr_in addr; //定义网络地址的结构对象addr.sin_family=AF_INET; //为地址结构中的成员赋值 addr.sin_port=htons(25); addr...
2019-03-28 20:05:36 360
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 怎么连接服务器 创建套接字对象 初始化释放套接字库
实例与一般网络程序一样需要Windows套接字 (SOCKET) 的支持用户应该首先初始化套接字库BOOL CMyEMAIL::OnInitDialog(){ ... //省略部分代码DWORD ss=MAKEWORD(2,0); //指定套接字库版本 ::WSAStartup(ss,&data); //初始化套接字库 ... //省略部分代码}用户初始化套接字库以后...
2019-03-27 17:02:40 494
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 怎么连接服务器
SMTP是发送邮件协议FTP,HTTP等协议一样被用作某种行为的规范标准在网络中传输邮件信息是基于TCP/IP协议的所以用户在Windows操作系统中编写邮件发送程序时可以使用Windows套接字来完成客户端连接服务器的几个步骤1 客户端以指定IP地址和端口连接服务器2 服务器收到连接请求,并同意客户端连接请求3 客户端和服务器互相发送数据4 关闭服务器和客户端的套接字基于以上...
2019-03-26 18:11:41 241
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 CreateProcess() ShellExecute()自带邮件发送程序
使用ShellExecute()函数调用操作系统自带的邮件发送程序#include<stdio.h> //调用相关头文件#include<windows.h>main() //主函数{ int i=0; //调用循环变量 char ch; //定义字符,用于获取用户输入 printf("确认打开邮件收发程序!(Y/N)\n"); //提示用户 scanf...
2019-03-24 20:39:17 301
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 CreateProcess()函数 ShellExecute()函数原型
在MFC编程中除了函数CreateProcess()以外还可以调用函数ShellExecute()实现相同的功能函数的原型如下HINSTANCE ShellExecute{ HWND hwnd, //父窗口句柄 LPCTSTR lpOperation, //将要进行的操作形式 LPCTSTR lpFile, //目录文件名称或文件路径 LPCTSTR lpParamet...
2019-03-23 20:41:57 185
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 CreateProcess()函数 调用邮件收发程序
可以使用函数CreateProcess()调用邮件收发程序代码如下... //省略部分代码STARTUPINFO si={sizeof(si)}; //定义结构体变量PROCESS_INFORMATION pi; CString *str="mailto:lymlrl@163.com"; //打开邮件程序的系统命令CreateProcess(NULL,str,NULL,NULL,fa...
2019-03-22 21:40:30 633
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 CreateProcess()函数 调用操作系统的记事本程序
PROCESS_INFORMATION该结构体主要用于保存进程的相关信息其他参数均可以默认设置为NULL例如调用操作系统的记事本程序,代码如下… //省略部分代码STARTUPINFO si={sizeof(si)}; //定义结构体变量PROCESS_INFORMATION pi; //定义结构体变量CString *str=“notepad”; //记事本名称CreatePro...
2019-03-21 15:55:12 175
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 CreateProcess()函数 使用 CreateProcess()函数 原型
CreateProcess()函数 可以创建Windows进行同时也可以调用已经存在的进程函数的原型BOOL CreateProcess{ LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAt...
2019-03-20 07:30:12 199
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序 调用Windows进程
在Windows操作系统所有的程序都是以进程为单位运行调用邮件发送程序就是通过调用相应的Windows进程实现调用Windows进程所使用的命令 “mailto+string”,其中,string 表示邮件发送的目的地址例如,用户需要将邮件发送到邮件地址为lymlrl@163.com的邮箱中使用的命令是 mailto:lymlrl@163.com先,在Windows系统界面下选择 “...
2019-03-19 08:08:20 183
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器 调用Windows自带的邮件发送程序
一般情况,用户使用Windows操作系统中都带有默认的邮件发送程序通过邮件发送程序用户可以将邮件发送到任何目的地址这种方法比较简单适用所以很受大部分用户欢迎用户在操作系统中适用操作系统命令打开邮件程序如果用户需要在自己程序调用系统自带的邮件程序适用函数CreateProcess()或者ShellExecute()进行调用...
2019-03-18 22:45:47 220
原创 Visual C++网络编程经典案例详解 第7章 邮件收发器
邮件收发器的作用是在本地计算机和远程计算机之间传送电子信件用户平时所用的E-mail就是一种邮件收发器通常情况,E-mail由发送者将电子信件发送到邮件服务器(SMTP)中再由SMTP服务器将该邮件发送到POP3(接收邮件)服务器中邮件接收者通过账户和口令再从POP3服务器中获取信件...
2019-03-16 22:53:23 510
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 服务器状态栏编程 实现变换颜色的状态栏
在定时器触发的消息响应函数中编写代码实现变换颜色的状态栏int i=0;void CMy12Dlg::OnTimer(UINT nIDEvent){ i+=15; if(i&gt;255) { i=15; } else { ::SendMessage(statu,SB_SETBKCOLOR,0,(long)RGB(i,0,15)); //否则发送消息设置状态栏颜色值...
2019-03-15 16:53:08 139
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 服务器状态栏编程 设置状态栏初始颜色值为红色
在代码中,状态栏句柄statu和状态栏的ID都需要事先在相关文件中进行声明在头文件中声明状态栏句柄class CMy12Dlg:public CDialog{protected: HWND statu;}在头文件Resource.h 中定义状态栏的ID 定义代码#define IDC_123 1009通过操作和代码编写,已经在程序窗口的界面上添加一个状态栏在程序运行时...
2019-03-14 13:09:10 176
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 服务器状态栏编程 给创建的状态栏指定样式
创建状态栏需要为指定的窗口样式为WS_CHILD|WS_VISIBLEBOOL CMy12Dlg::OnInitDialog(){statu=::CreateStatusWindow(WS_CHILD|WS_VISIBLE,“欢迎使用本软件的服务器!”),this->m_hWnd,IDC_123); //创建状态栏… //省略部分代码}CreateStatusWindow()...
2019-03-12 19:27:45 84
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 服务器状态栏编程 CreateStatusWindow()原型
状态栏在软件中可以作为一个提示牌显示一些提示信息给用户或者是显示帮助用户可以发现程序界面中不但又可以变化的图标和时间还有可以改变颜色的状态栏状态栏编程在软件设计中重要的一部分创建状态栏需要使用Win32 API函数 CreateStatusWindow() 其原型如下HWND CreateStatusWindow{ LONG style, LPCTSTR lpszText, HW...
2019-03-11 19:16:00 392
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 显示服务器启动时间 确定软件的运行时间
用户根据显示软件运行时间功能的编程描述在CMy12Dlg类的头文件12Dlg.h添加全局变量声明int mtime1;int stime1;class CMy12Dlg:public CDialog{...}然后,根据程序启动时所获取时间和定时器触发消息时的时间来确定软件的运行时间BOOL CMy12Dlg::OnInitDialog() //程序初始化函数{ CTim...
2019-03-09 20:54:02 90
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 显示服务器启动时间 OnTimer()函数
要完整的显示程序已运行时间则需要在定时器触发响应函数中动态获取时间原理是将动态获取到的时间减去程序启动时的时间就等于程序已经运行的时间 根据其原理void CMy12Dlg::OnTimer(UINT nIDEvent){ ... //省略部分代码 CTime time2; //等于CTime类对象 CString str2,str3; //定义字符串 time2=CTime::...
2019-03-07 20:25:48 153
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 显示服务器启动时间 获取程序启动分钟和秒钟数
显示程序运行的时间是以秒为单位用户在格式化时间字符串时只需要获得时间的分秒部分其余可以舍去int mtime1; //声明全局变量int stime1;BOOL CMy12Dlg::OnInitDialog(){... //省略部分代码CTime time1; //定义CTime类变量CString str,str1; //定义字符串Time1=CTime::GetCurr...
2019-03-06 22:37:13 267
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 显示服务器启动时间 获取当前系统时间
在本例中,需要向用户说明使用该方法显示程序启动时间是因为程序中设置了定时器触发时间正好是一秒钟如果在实际编程中,用户设置的定时器不是一秒那么就需要用户调用mfc类库中的函数来实现为了在程序中需要获得当前系统的时间可以通过CTime::GetCurrentTime()函数实现例如,获得当前系统的时间... //省略部分代码CTime time1; //定义CTime类对象CSt...
2019-03-05 23:06:07 139
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 显示服务器启动时间
在软件成功启动后程序该如何告知用户所使用的时间和改变软件图标一样,时间是变化的,那么该功能的实现还是应该在WM_TIMER消息响应函数中实现int n2=0; //声明全局变量n2,作为计数变量... //省略部分代码void CMy12Dlg::OnTimer(UINT nIDEvent){ if(i<=1) //限制循环次数 { ::SendMessage(m...
2019-03-03 22:59:44 104
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 设置服务器窗口图标 OnTimer()函数
在WM_TIMER 消息响应函数OnTimer()中编写实现轮流显示图标的方法void CMy12Dlg::OnTimer(UINT nIDEvent){ if(i<=1)//限制循环次数 { ::SendMessage(m_hWnd,WM_SETICON,0,(long)hh[i++]); //发送设置图标消息到窗口 } else //如果限制次数失败,则初始化变量...
2019-03-02 23:11:29 184
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 设置服务器窗口图标
为了使服务器软件运行时给用户一种运动的感觉所以在程序中实现图标随时间变化而变化首先在工程的资源列表中插入两幅图标并且分别命名为IDI_ICON1和IDI_ICON2BOOL CMy12Dlg::OnInitDialog(){ ...//省略部分代码 hh[0]=::LoadIcon(AfxGetApp()->m_hInstance,(char *)IDI_ICON1); ...
2019-03-01 22:52:26 157
深入理解C# 第三版 第二章代码
2018-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人