如何在mfc中添socket连接
来源:互联网 发布:2017网络最流行的语言 编辑:程序博客网 时间:2024/05/22 06:34
用途:已经写好的mfc例程如果没有socket而需要增加socket采用这个办法,作用类似于新建MFC工程时勾选套接字。
1、在入口程序的 CWinApp::InitInstance();后边添加下面的代码
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
2、在对话框程序的头文件中#pragma once后面添加对库的引用
#include <afxsock.h>
3、在对话框cpp文件开头定义接收socket的字符串
char szRecvMsg[256] = {0};
4、在需要打开socket的地方拷贝如下代码:
/////////////////////////////////////////////////////////////////////////////
//与网络相关
////////////////////////////////////////////////////////////////////////////
if (!AfxSocketInit())
{
// AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return 1;
}
//Cmedia_tj_6Dlg *aDlg = (Cmedia_tj_6Dlg *)lParam;
CString strPort;
//aDlg->GetDlgItemText(IDC_EDIT_PORT, strPort);
UINT nPort = 8808;
//socket------------------------------------------------
CSocket aSocket, serverSocket;
if (!aSocket.Socket())
{
char szError[256] = {0};
sprintf(szError, "Create Faild: %d", GetLastError());
AfxMessageBox(szError);
// return 1;
}
BOOL bOptVal = TRUE;
int bOptLen = sizeof(BOOL);
aSocket.SetSockOpt(SO_REUSEADDR, (void *)&bOptVal, bOptLen, SOL_SOCKET);
if (!aSocket.Bind(nPort))
{
char szError[256] = {0};
sprintf(szError, "Bind Faild: %d", GetLastError());
AfxMessageBox(szError);
// return 1;
}
if(!aSocket.Listen(10))
{
char szError[256] = {0};
sprintf(szError, "Listen Faild: %d", GetLastError());
AfxMessageBox(szError);
// return 1;
}
CString strText;
//aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
// strText += "Server Start! \r\n";
// aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
剩下的就是accept了
如果是client端
CSocket m_socket;
m_socket.Create();
if (m_socket.Connect("127.0.0.1",6666) ){m_socket.Send("00",2);}
m_socket.Close();
- 如何在mfc中添socket连接
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时(转)
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- 如何在socket编程的Tcp连接中实现心跳协议
- MFC利用Socket实现连接
- 如何在MFC中使用GDI+技术
- jQuery Utilities
- 第三章 标准库类型(part 3) 迭代器
- sem_init函数
- Linu查看用户的权限
- Eclipse 图形用户界面编程
- 如何在mfc中添socket连接
- java 1维数组冒泡法排序
- 振南的znFAT(第三章_谁格式化了我的SD卡)
- 注解
- 《JavaWeb---利用md5算法得到数据的指纹,再利用baset64算法获取计算后的字符串》
- java 4-1 对一个数的各个位值排序
- 麦克疯
- sizeof()函数
- Activity的生命周期