MFC下的socket简单编程
2016-07-13 22:34
495 查看
Socket服务端,启动Socket和监听客户端的连接
在StdAfx.h中添加
在界面Dlg.cpp中添加
还有添加
打开网络连接
比较简单的初始化Socket的方式:
监听等操作(整合到线程里面):
在StdAfx.h中添加
#include <afxsock.h>
在界面Dlg.cpp中添加
#include <winsock2.h>
还有添加
#pragma comment(lib, "WS2_32.lib")
SOCKET sock;创建成全局变量
打开网络连接
WSADATA wsaData; WORD version = MAKEWORD(2, 2); int ret = WSAStartup(version, &wsaData); if (ret != 0) { MessageBox(_T("初始化失败")); return false; }
比较简单的初始化Socket的方式:
bool C线程Dlg::InitSocket() { WSADATA wsaData; WORD version = MAKEWORD(2, 2); int ret = WSAStartup(version, &wsaData); if (ret != 0) { MessageBox(_T("初始化失败")); return false; } m_socket = socket(AF_INET, SOCK_STREAM, 0); if (INVALID_SOCKET == m_socket) { MessageBox(_T("套接字创建失败"), _T("警告")); return false; } SOCKADDR_IN addrSock; addrSock.sin_family = AF_INET; addrSock.sin_port = htons(12345); addrSock.sin_addr.S_un.S_addr = htonl(INADDR_ANY); int retval; retval = bind(m_socket, (SOCKADDR*)&addrSock, sizeof(SOCKADDR)); if (SOCKET_ERROR == retval) { closesocket(m_socket); MessageBox(_T("套接字绑定失败"), _T("警告")); return false; } return true; }
监听等操作(整合到线程里面):
if (listen(m_socket, 5) == SOCKET_ERROR)//监听客户端,如果是基于UDP的,则不需要listen { MessageBox(_T("开启监听失败"), _T("警告")); return; } MessageBox(_T("开始监听"), _T("通知")); //监听通过 SOCKADDR_IN addrFrom; int len = sizeof(SOCKADDR); SOCKET ConnectSocket = accept(m_socket, (sockaddr*)&addrFrom, &len); //得到客户端的IP地址。 char recvBuf[200] = { 0 };//获取客户端发送的消息 int retval = recv(ConnectSocket, recvBuf, 200, 0); if (SOCKET_ERROR == retval) return;
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- java socket 注意的地方
- java socket 注意的地方
- C#基于socket模拟http请求的方法
- 简单的Ruby中的Socket编程教程
- Socket不能选择本地IP连接问题如何解决
- C#之Socket操作类实例解析
- 使用C#来编写一个异步的Socket服务器
- C#使用Socket快速判断数据库连接是否正常的方法
- Visual C++中MFC消息的分类
- 科学知识:理解socket
- websocket++简单使用及实例分析
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法