紧急求救,怎么用dll封装udp

wjabcjw 2008-06-21 09:44:33
因为matlab中用到,不会用matlab的udp功能

问各位高手可不可以在Dlephi做一个Dll,通过调用其中函数实现udp方式传输数据,初步打算用Indy
各位有没有现成例子可参考

谢过了
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
大大怪老张 2008-06-23
  • 打赏
  • 举报
回复
本来简单的传输就是很简单的。

楼上不要混淆概念。 你去多灌水就是了。
CCC的 2008-06-22
  • 打赏
  • 举报
回复
学习学习,哈哈哈哈,楼主给点分把,堵球输得只剩裤衩了
wjabcjw 2008-06-21
  • 打赏
  • 举报
回复
用VC搞定了
原来很简单啊:
// udpdll.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include "udpdll.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,

BEGIN_MESSAGE_MAP(CudpdllApp, CWinApp)
END_MESSAGE_MAP()


// CudpdllApp 构造

CudpdllApp::CudpdllApp()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}


// 唯一的一个 CudpdllApp 对象

CudpdllApp theApp;


// CudpdllApp 初始化

BOOL CudpdllApp::InitInstance()
{
CWinApp::InitInstance();

return TRUE;
}
//外部接口函数
int CudpdllApp::SendUdpMessage(char *str,int num)
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return FALSE;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return FALSE;
}
SOCKET sockClient = socket( AF_INET , SOCK_DGRAM , 0 ) ;
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.1.255") ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons(5000) ;
int len = sizeof(SOCKADDR);
while (1)
{

sendto( sockClient ,str ,num , 0 ,
(SOCKADDR*)&addrSrv, len ) ;
Sleep(2000);

}
closesocket(sockClient) ;
WSACleanup() ;

return 0;
}

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧