资源简介
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重绘
相关资源
- yolo源代码
- 移动端商城微信小程序源代码
- qt网络五子棋
- 深入浅出MS06-040(看雪网络版)
- 中科院 国科大网络数据挖掘期末考试
- 校园网搭建搭建校园网
- 计算机网络-自顶向下方法(中文第六
- 工信部《电信网和互联网安全防护体
- 西门子S7通讯协议API
- 包含六个经典的仿真 流水灯 走马灯
- GrabCut算法源代码
- 严蔚敏《数据结构》教材各章完整源
- TinyWebDB浏览器 - APPInventor网络微数据库
- nRF24LE1双向通讯
- DLMS通讯协议中文
- 嵌入式网络那些事-STM32物联实战完整
- 基于指针和链表的学生成绩管理系统
- 支持向量机与神经网络的区别
- BP网络与RBF径向基网络对比
- 瑞萨单片机的应用洗衣机上的源代码
- bt客户端源代码
- 设计模式可复用面向对象软件的基础
- LabWindows_CVI调用外部程序的六种方法源
- som神经网络用于实现图像压缩
- 网络微积分学研究
- NETBEANS下的网络QQ聊天系统
- 基于蓝牙实现即时通讯demo
- foobar2000最新版本源代码
- 串口通讯+modbus通讯协议
- 机器人足球平台比赛平台源代码.rar
评论
共有 条评论