77范文网 - 专业文章范例文档资料分享平台

基于winsock API函数的MFC网络应用程序分析毕业设计(论文)(2)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

计算机网络工程---实践教程

{

// Construction public:

CWyChatDlg(CWnd* pParent = NULL); // standard constructor

~CWyChatDlg(); //自行添加的对话框析构函数 // Dialog Data

// Implementation protected:

// Generated message map functions //{{AFX_MSG(CWyChatDlg) virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnSend(); //}}AFX_MSG HICON m_hIcon;

// ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CWyChatDlg) protected:

virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL

// DDX/DDV support

//{{AFX_DATA(CWyChatDlg)

enum { IDD = IDD_WYCHAT_DIALOG };

// NOTE: the ClassWizard will add data members here

//}}AFX_DATA

afx_msg void OnSock(WPARAM,LPARAM); //自行添加的套接字响应函数

DECLARE_MESSAGE_MAP()

private:

SOCKET m_socket; //自行定义的私有套接字成员变量

6

public:

计算机网络工程---实践教程

};

BOOL InitSocket(); //自行定义的套接字初始化函数

WyChatDlg.cpp的主要代码如下:

CWyChatDlg::~CWyChatDlg() //自行添加的析构函数 {

if(m_socket) }

BEGIN_MESSAGE_MAP(CWyChatDlg, CDialog)

//{{AFX_MSG_MAP(CWyChatDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDSEND, OnSend) //}}AFX_MSG_MAP { }

closesocket(m_socket); //关闭套接字

ON_MESSAGE(MSG_SOCK,OnSock) //自行添加的消息关联 END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CWyChatDlg message handlers

BOOL CWyChatDlg::OnInitDialog() {

7

CDialog::OnInitDialog();

// Add \

// IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);

计算机网络工程---实践教程

}

CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { }

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { }

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE);

// TODO: Add extra initialization here

InitSocket(); //自行添加的套接字初始化函数调用

return TRUE; // return TRUE unless you set the focus to a control

// Set big icon // Set small icon

BOOL CWyChatDlg::InitSocket() {

m_socket=socket(AF_INET,SOCK_DGRAM,0); if(INVALID_SOCKET==m_socket) {

int a=WSAGetLastError(); CString str; str.Format(\ MessageBox(str); return FALSE;

}

SOCKADDR_IN addrSock;

addrSock.sin_addr.S_un .S_addr =inet_addr(\ addrSock.sin_family =AF_INET;

8

计算机网络工程---实践教程

addrSock.sin_port =htons(5003);

if(bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR))==SOCKET_ERROR) {

// AfxMessageBox(_T(\

int a=WSAGetLastError(); CString str;

str.Format(\ AfxMessageBox(str); return FALSE;

}

if(WSAAsyncSelect(m_socket,m_hWnd,MSG_SOCK,FD_READ|FD_WRITE)==SOCKET_ERROR) {

AfxMessageBox(_T(\ return FALSE;

}

return TRUE; }

void CWyChatDlg::OnSock(WPARAM wParam,LPARAM lParam) {

switch(LOWORD(lParam))

{

case FD_READ:

{

char buff[254];

sockaddr_in addr2; int n=sizeof(addr2); long charNum=0; CString strFileLen=\

charNum=::recvfrom(m_socket,buff,sizeof(buff),0,(sockaddr*)&addr2,&n); buff[charNum]='\\0'; //在接收缓冲区实际接收到的字符串尾部加上结束标志

CString strTemp;

GetDlgItemText(IDC_EDITChat,strTemp);

strTemp=strTemp+\对方说:\

9

计算机网络工程---实践教程

//SetDlgItemText(IDC_EDITChat,buff); SetDlgItemText(IDC_EDITChat,strTemp);

}

UpdateData(false); break;

case FD_WRITE:

{

}

default: break; }

// The system calls this to obtain the cursor to display while the user drags // the minimized window.

HCURSOR CWyChatDlg::OnQueryDragIcon() { }

void CWyChatDlg::OnSend() {

// TODO: Add your control notification handler code here return (HCURSOR) m_hIcon; }

CString strSend;

GetDlgItemText(IDC_EDIT_Send,strSend);

sockaddr_in addr,addr2; int n=sizeof(addr2); char buff[10]={0}; addr.sin_family=AF_INET;

addr.sin_port=htons(7600); //设置对方的端口号

addr.sin_addr.S_un.S_addr=inet_addr(\设置对方的IP

/*int n1=strSend.GetLength(); CString msg; msg.Format(\

MessageBox(msg);

*/

10

if(strSend.GetLength()!=0)

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于winsock API函数的MFC网络应用程序分析毕业设计(论文)(2)在线全文阅读。

基于winsock API函数的MFC网络应用程序分析毕业设计(论文)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/396126.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: