• 大小: 136KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 网络  通讯  源代码  

资源简介

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个文件信息

评论

共有 条评论