频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

扔掉Socket实现网络编程

来源:Popunet 作者:流星 出处:巧巧读书 2005-11-06 进入讨论组

  建一对话框IDD_Addr,用来输入IP地址和Port;增加两个Edit控件:IDC_Addr、IDC_Port按下表在ClassWizard中为CAddrDlg类添加变量。

  Control ID Type Member
IDC_Addr CString m_Addr
IDC_Port Int m_Port
在CSockClientDlg.ccp中添加代码:
#include "AddrDlg.h"
protected:
int TryCount;
MySock m_clientSocket;
UINT m_szPort;
public:
char m_szServerAdr[256];

  双击IDD_CSOCKCLIENT_DIALOG对话框中的“连接”按钮,添加以下代码:

m_clientSocket.ShutDown(2);
m_clientSocket.m_hSocket=INVALID_SOCKET;
m_clientSocket.m_bConnected=FALSE;
CAddrDlg m_Dlg;
m_Dlg.m_Port=1088;//默认端口1088
if (m_Dlg.DoModal()==IDOK && !m_Dlg.m_Addr.IsEmpty())
{ memcpy(m_szServerAdr,m_Dlg.m_Addr,sizeof(m_szServerAdr));
m_szPort=m_Dlg.m_Port;
SetTimer(1,1000,NULL);//建立计时器,每1秒尝试连接一次
TryCount=0;}
添加Windows消息WM_TIMER响应函数OnTimer
void CCSockClientDlg::OnTimer(UINT nIDEvent)
{ if (m_clientSocket.m_hSocket==INVALID_SOCKET)
{ BOOL bFlag=m_clientSocket.Create(0,SOCK_STREAM,FD_CONNECT);
if(!bFlag)
{ AfxMessageBox("Socket Error!");
m_clientSocket.Close();
PostQuitMessage(0);
return;}}
m_clientSocket.Connect(m_szServerAdr,m_szPort);
TryCount++;
if (TryCount >=10 || m_clientSocket.m_bConnected)
{ KillTimer(1);
if (TryCount >=10)
AfxMessageBox("Connect Failed!");
return;}
CDialog::OnTimer(nIDEvent);}

  双击IDD_CSOCKCLIENT_DIALOG对话框中的“发送”按钮,添加以下代码:

  void CCSockClientDlg::OnSend()
{if (m_clientSocket.m_bConnected)
{ m_clientSocket.m_nLength=m_MSG.GetWindowText
(m_clientSocket.m_szBuffer, sizeof(m_clientSocket.m_szBuffer));
m_clientSocket.AsyncSelect(FD_WRITE);
m_MSG.SetWindowText("");}}
双击IDD_CSOCKCLIENT_DIALOG对话框中的“关闭”按钮,添加以下代码:
void CCSockClientDlg::OnExit()
{ m_clientSocket.ShutDown(2); //关闭Socket
EndDialog(0);}

  运行此项目,连接时输入主机名或IP均可,CAsyncSocket类会自动处理。 来自:http://www.qqread.com/vc/s920577020.html 更多文章 更多内容请看网络管理实用手册网络故障手册网络组网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章