MFC编程实现UDP通讯( 含ShellExecute)
2012-07-26 16:20
211 查看
遇见一个奇特的问题。套接字创建成功,报文无法发送成功。调试了一上午之后,使用套接字的时候是需要
if (!AfxSocketInit())
{
return FALSE;
}
函数功能:在重载的CWinApp::InitInstance函数中调用这个函数以初始化WindowsSockets。
注意:在调用 AfxSocketInit() 之前,需要包含 afxsock.h 头文件
添加方式:
a.创建项目时在高级功能里点选windows套接字
b.在项目App里的初始化函数中直接添加
奇特问题二:
收到数据报文,但函数返回值是-1
在ReceiveFrom后添加int x=WSAGetLastError();
观察x的值,发现x=10040;查阅资料发现,报文数据过长。
解决办法:
修改接收端数据的长度。
在程序中调用别的程序的exe文件:
以下是调别的程序的exe文件的小代码:
ShellExecute的参数说明:
//任务管理器
LoadLibrary("msvcrt.dll");
system("taskmgr");
。UDP的各种函数解析:
客户端只需要create。
服务端先create,再bind。
UDP与TCP的连接基本相似。
注:SendTo函数如果有返回值,速度会比较慢。影响效率
if (!AfxSocketInit())
{
return FALSE;
}
函数功能:在重载的CWinApp::InitInstance函数中调用这个函数以初始化WindowsSockets。
注意:在调用 AfxSocketInit() 之前,需要包含 afxsock.h 头文件
添加方式:
a.创建项目时在高级功能里点选windows套接字
b.在项目App里的初始化函数中直接添加
奇特问题二:
收到数据报文,但函数返回值是-1
在ReceiveFrom后添加int x=WSAGetLastError();
观察x的值,发现x=10040;查阅资料发现,报文数据过长。
解决办法:
修改接收端数据的长度。
在程序中调用别的程序的exe文件:
以下是调别的程序的exe文件的小代码:
//头文件#include<windows.h> SHELLEXECUTEINFO ShExecInfo = {0}; ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = "E:\\CreatDBF\\Debug\\CreatDBF.exe";//别的程序的exe文件 ShExecInfo.lpParameters=""; ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_SHOW; ShExecInfo.hInstApp = NULL; ShellExecuteEx(&ShExecInfo); WaitForSingleObject(ShExecInfo.hProcess,INFINITE);//执行完别的程序的exe文件后,返回主程序 //调用计算器 ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL); //调用记事本 ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOWNORMAL);
ShellExecute的参数说明:
//任务管理器
LoadLibrary("msvcrt.dll");
system("taskmgr");
。UDP的各种函数解析:
客户端只需要create。
服务端先create,再bind。
Create(localport,SOCK_DGRAM)//本地端口号,以UDP方式连接 Bind(m_port,m_ip);//绑定自己的端口,地址 SendTo(m_data, datalen,m_port, m_ip,0);//要发送的数据,数据长度,远程端口号,远程ip ReceiveFrom(Buf, Buflen,m_port, m_ip, 0);//.....代码在别的电脑,稍后更新到资源。
UDP与TCP的连接基本相似。
注:SendTo函数如果有返回值,速度会比较慢。影响效率
相关文章推荐
- UDP通讯方式及编程实现步骤
- UDP通讯方式及编程实现步骤
- MFC的UDP编程实现
- JAVA网络编程之UDP通讯的实现步骤
- MFC的UDP编程实现
- UDP通讯方式及编程实现步骤
- UDP通讯方式及编程实现步骤
- UDP通讯方式及编程实现步骤
- 用MFC实现串口编程 (zhuan)
- 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- 使用MFC快速实现网络编程 CAsyncSocket
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- Socket通讯编程实现简单的任意聊天程序
- C# UDP编程(通过类UdpClient实现收发)
- 网络编程(学习整理)---2--(Udp)实现简单的控制台聊天室
- C++ socket编程 实现服务端与客户端的通讯
- MFC编程(标签控件Tab Control(选项卡控件) 和picture control 来实现视图的切换 )
- Socket编程 (异步通讯,解决Udp丢包) - Part4
- [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
- <网络编程培训之一> 编程实现IP/TCP/UDP报文