没有合适的资源?快使用搜索试试~ 我知道了~
飞鸽传书源代码极其详细的解释
3星 · 超过75%的资源 需积分: 10 33 下载量 172 浏览量
2010-04-08
11:05:11
上传
评论
收藏 17KB TXT 举报
温馨提示
试读
12页
飞鸽传书源代码极其详细的解释飞鸽传书源代码极其详细的解释飞鸽传书源代码极其详细的解释飞鸽传书源代码极其详细的解释飞鸽传书源代码极其详细的解释
资源推荐
资源详情
资源评论
static char *ipmsg_id =
"@(#)Copyright (C) H.Shirouzu 1996-2002 ipmsg.cpp Ver2.00";
/* ========================================================================
Project Name : IP Messenger for Win32
Module Name : IP Messenger Application Class
Create : 1996-06-01(Sat)
Update : 2002-11-03(Sun)
Copyright : H.Shirouzu
Reference :
======================================================================== */
#include <time.h>
#include "tlib.h"
#include "resource.h"
#include "ipmsg.h"
#define IPMSG_CLASS "ipmsg_class"
TMsgApp::TMsgApp(HINSTANCE _hI, LPSTR _cmdLine, int _nCmdShow) : TApp(_hI, _cmdLine, _nCmdShow)
{
// srand和Time是C语言的库函数。前者用来设置随机数的种子数。后者用来获取当前系统的时间。
// 为什么需要设置随机数的种子数呢?原因在于随机数的产生。随机数的产生函数只能保证运行时期间本次
// 产生的随机数和下次产生的随机数之间是随即的。而无法保证本示例和下一个示例之间产生的随机数随机。
// 也就是说,你第一次运行是生产的随机数是1、7、2、9...,下次的时候还是1、7、2、9...。为什么会出现
// 这种问题呢?原因就是用于生产随机数的种子是一样的。所以,如果将种子设置为程序运行时就可以避免这
// 个问题了。因为,这个时间是个随机数,且重复的可能性几乎为0.
srand((UINT)Time());
}
TMsgApp::~TMsgApp()
{
}
//////////////////////////////////////////////////////////////
/// @brief 初始化,解析命令行参数并创建主窗口
///
/// 需要注意的是,飞鸽传输的界面完全是直接使用windows API实现的。并没有使用MFC。这儿是它小巧绿色的原因之一。
/// 对于初学者来说,分析它的代码可以更好的了解GUI程序的本质。
///
/// @author Allan
/// @date 2009-3-9
///
/// @note 2009-3-9 Allan First Create.
void TMsgApp::InitWindow(void)
{
WNDCLASS wc;
HWND hWnd;
char class_name[MAX_PATH] = IPMSG_CLASS, *tok, *msg, *p;
ULONG nicAddr = 0;///< 通信使用的IP地址
int port_no = atoi(cmdLine);///< 通信使用的端口号。可以使用参数进行指定,如果通过参数指定端口号的话,该参数必需是第一个。
// 如果没有指定,使用默认的端口号IPMSG_DEFAULT_PORT
if (port_no == 0)
port_no = IPMSG_DEFAULT_PORT;
// 分析命令行参数。每个参数以/开始。
if ((tok = strchr(cmdLine, '/')) && separate_token(tok, ' ', &p))
{
BOOL diag = TRUE;
DWORD status = 0xffffffff;
if (stricmp(tok, "/NIC") == 0) // 该参数用于指定通信使用的IP地址
{
if (tok = separate_token(NULL, ' ', &p))
nicAddr = ResolveAddr(tok);// 将IP地址字符串(例如192.168.0.123)转换成数字
}
else if (stricmp(tok, "/MSG") == 0) // 发消息的具体参数,是否记录日志之类的
///
/// 需要注意的是,飞鸽传输的界面完全是直接使用windows API实现的。并没有使用MFC。这儿是它小巧绿色的原因之一。
/// 对于初学者来说,分析它的代码可以更好的了解GUI程序的本质。
///
/// @author Allan
/// @date 2009-3-9
///
/// @note 2009-3-9 Allan First Create.
void TMsgApp::InitWindow(void)
{
WNDCLASS wc;
HWND hWnd;
char class_name[MAX_PATH] = IPMSG_CLASS, *tok, *msg, *p;
ULONG nicAddr = 0;///< 通信使用的IP地址
int port_no = atoi(cmdLine);///< 通信使用的端口号。可以使用参数进行指定,如果通过参数指定端口号的话,该参数必需是第一个。
// 如果没有指定,使用默认的端口号IPMSG_DEFAULT_PORT
if (port_no == 0)
port_no = IPMSG_DEFAULT_PORT;
// 分析命令行参数。每个参数以/开始。
if ((tok = strchr(cmdLine, '/')) && separate_token(tok, ' ', &p))
{
BOOL diag = TRUE;
DWORD status = 0xffffffff;
if (stricmp(tok, "/NIC") == 0) // 该参数用于指定通信使用的IP地址
{
if (tok = separate_token(NULL, ' ', &p))
nicAddr = ResolveAddr(tok);// 将IP地址字符串(例如192.168.0.123)转换成数字
}
else if (stricmp(tok, "/MSG") == 0) // 发消息的具体参数,是否记录日志之类的
剩余11页未读,继续阅读
qshmx
- 粉丝: 9
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页