资源简介
TCP/IP通讯实例源代码(服务端和客户端源码)将socket消息设置为窗口接收的消息类型!

代码片段和文件信息
/////////////////////////////////////////////////
// TCPClient.cpp文件
#include “TCPClient.h“
#include “resource.h“
// 定义网络事件通知消息
#define WM_SOCKET WM_USER + 1
CMyApp theApp;
BOOL CMyApp::InitInstance()
{
// 初始化Winsock库
WSADATA wsaData;
WORD sockVersion = MAKEWORD(2 0);
::WSAStartup(sockVersion &wsaData);
// 弹出主窗口对话框
CMainDialog dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
// 释放Winsock库
::WSACleanup();
return FALSE;
}
CMainDialog::CMainDialog(CWnd* pParentWnd):CDialog(IDD_MAINDIALOG pParentWnd)
{
}
BEGIN_MESSAGE_MAP(CMainDialog CDialog)
ON_BN_CLICKED(IDC_CONNECT OnButtonConnect)
ON_BN_CLICKED(IDC_SEND OnButtonSend)
ON_BN_CLICKED(IDC_CLEAR OnButtonClear)
ON_MESSAGE(WM_SOCKET OnSocket)
END_MESSAGE_MAP()
BOOL CMainDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置图标
SetIcon(theApp.LoadIcon(IDI_MAIN) FALSE);
// 创建状态栏,设置它的属性
m_bar.Create(WS_CHILD|WS_VISIBLE|SBS_SIZEGRIP CRect(0 0 0 0) this 101);
m_bar.SetBkColor(RGB(0xa6 0xca 0xf0)); // 背景色
int arWidth[] = { 200 -1 };
m_bar.SetParts(2 arWidth); // 分栏
m_bar.SetText(“ Windows程序设计进阶之路!“ 1 0); // 第一个栏的文本
m_bar.SetText(“ 空闲“ 0 0); // 第二个栏的文本
// 初始化发送按钮和发送编辑框的状态
GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
GetDlgItem(IDC_TEXT)->EnableWindow(FALSE);
// 初始化连接套节字
m_socket = INVALID_SOCKET;
return TRUE;
}
void CMainDialog::OnCancel()
{
if(m_socket != INVALID_SOCKET)
::closesocket(m_socket);
CDialog::OnCancel();
}
void CMainDialog::OnButtonClear()
{
GetDlgItem(IDC_INFO)->SetWindowText(““);
}
void CMainDialog::OnButtonConnect()
{
if(m_socket == INVALID_SOCKET) // 连接服务器
{
// 取得服务器地址
CString sAddr;
GetDlgItem(IDC_ADDR)->GetWindowText(sAddr);
if(sAddr.IsEmpty())
{
MessageBox(“请输入服务器地址!“);
return;
}
// 取得端口号
CString sPort;
GetDlgItem(IDC_PORT)->GetWindowText(sPort);
int nPort = atoi(sPort);
if(nPort < 1 || nPort > 65535)
{
MessageBox(“端口号错误!“);
return;
}
// 试图连接服务器
if(!Connect(sAddr nPort))
{
MessageBox(“连接服务器出错!“);
return;
}
// 设置用户界面
GetDlgItem(IDC_CONNECT)->SetWindowText(“取消“);
m_bar.SetText(“ 正在连接……“ 0 0);
}
else // 断开服务器
{
// 关闭套节字
::closesocket(m_socket);
m_socket = INVALID_SOCKET;
// 设置用户界面
GetDlgItem(IDC_CONNECT)->SetWindowText(“连接服务器“);
m_bar.SetText(“ 空闲“ 0 0);
GetDlgItem(IDC_ADDR)->EnableWindow(TRUE);
GetDlgItem(IDC_PORT)->EnableWindow(TRUE);
GetDlgItem(IDC_TEXT)->EnableWindow(FALSE);
GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
}
}
long CMainDialog::OnSocket(WPARAM wParam LPARAM lParam)
{
// 取得有事件发生的套节字句柄
SOCKET s = wParam;
// 查看是否出错
if(WSAGETSELECTERROR(lParam))
{
if(m_socket != SOCKET_ERROR)
OnButtonConnect();
m_bar.SetText(“ 连接出错!“ 0 0);
return 0;
}
// 处理发生的事件
switch(WSAGETSELECTEVENT(lParam))
{
case FD_CONNECT: // 套节字正确的连接到服务器
{
// 设置用户界面
GetDlgItem(IDC_CONNECT)->Se
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4030 2005-01-30 22:31 10TCPServer\10TCPServer.dsp
文件 545 2004-11-26 23:30 10TCPServer\10TCPServer.dsw
文件 33792 2011-03-10 21:47 10TCPServer\10TCPServer.ncb
文件 53760 2011-03-10 21:47 10TCPServer\10TCPServer.opt
文件 766 2004-02-21 21:18 10TCPServer\ACER.ICO
文件 2238 2004-12-04 10:14 10TCPServer\network computer.ico
文件 102400 2005-01-30 22:46 10TCPServer\Release\10TCPServer.exe
文件 1190 2004-12-04 15:31 10TCPServer\resource.h
文件 2982 2004-12-04 15:31 10TCPServer\resource.rc
文件 6166 2005-01-30 22:46 10TCPServer\TCPClient.cpp
文件 1273 2004-12-08 12:47 10TCPServer\TCPClient.h
文件 4060 2005-01-30 22:45 10TCPClient\10TCPClient.dsp
文件 545 2004-11-26 23:20 10TCPClient\10TCPClient.dsw
文件 33792 2010-07-21 16:47 10TCPClient\10TCPClient.ncb
文件 53760 2010-07-21 16:47 10TCPClient\10TCPClient.opt
文件 176200 2005-01-30 22:42 10TCPClient\Release\10TCPClient.exe
文件 1420 2004-12-05 14:42 10TCPClient\resource.h
文件 3270 2004-12-09 16:37 10TCPClient\resource.rc
文件 5798 2005-01-30 22:42 10TCPClient\TCPClient.cpp
文件 968 2004-12-08 22:13 10TCPClient\TCPClient.h
文件 766 2004-12-05 14:42 10TCPClient\TCPClient.ICO
目录 0 2013-01-15 14:29 10TCPServer\Debug
目录 0 2013-01-15 14:29 10TCPServer\Release
目录 0 2013-01-15 14:29 10TCPClient\Debug
目录 0 2013-01-15 14:29 10TCPClient\Release
目录 0 2013-01-15 14:29 10TCPServer
目录 0 2013-01-15 14:29 10TCPClient
----------- --------- ---------- ----- ----
489721 27
............此处省略0个文件信息
- 上一篇:boost asio中转服务器(TCP)
- 下一篇:combox重绘
相关资源
- 网络安全等级保护测评实施20180904
- bp神经网络源代码,可直接运行
- 04741计算机网络原理知识点整理.docx(
- delphi 串口通讯
- Omron ETN21模块进行modbustcp通讯
- Visio图标-最新最全的网络通信图标库
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- WPF USB 网络 串口 通信软件
- ManageEngine_OpManager_12.3安装手册+管理员
- WPE三件套(WPE+CCP+E2G)冰枫修改版
- TCL-S1916 ,1924交换机管理程序
- dotnet 写字板 实验 源代码 不好请要不
- 连续hopfield神经网络解决TSP问题
- modbus通讯协议详解
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- Windows异步套接字网络编程
- 网上拍卖系统完整源代码
- 改进的BP神经网络算法
- 通风网络解算程序 fortran90
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 证券总部网络拓扑结构示意图网络拓
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- NRF24L01实现51与STM32双向通讯
- 校园网络规划与设计课程设计
- STM32F103 串口程序(完整版)
评论
共有 条评论