编者按:TCP/IP连接也包括在MathWorks仪器控制工具箱://www.tatmou.com/products/instrument/下载188bet金宝搏
TCP / UDP / IP工具箱2.0.6
远程tcp-ip连接示例:
反对= pnet(“tcpconnect”、“remote-server.xxx.com”,1677);
pnet (con, printf,“Hello world ! \ n”);
pnet(案子,“关闭”);
这个工具箱可以用来建立TCP/IP连接或
在MATLAB中发送/接收UDP/IP数据包。它可以在MATLAB进程或其他应用程序之间通过内部网/Internet传输数据。它可以作为服务器和/或客户端,传输文本字符串、任意数据类型的数组、文件或MATLAB变量。
注意2015-05-08:
这个工具箱没有更新到MATLAB的最新版本,我知道MEX API有一些微小的变化,可能需要更新这个pnet工具。可能会对代码进行一些调整,并重新编译为最新的API (mex.h)。我没有任何最新的matlab版本的许可证。也许有人可以支持我,我会把它作为更新包金宝app上传。/彼得Rydesater peter@rydesater.se
更新于2.0.6 2008-03-06
-包含一个预编译的pnet。mexw32 for 金宝appsupport to matlab R2007 (R2008?)
不需要编译pnet.c就可以在R2007平台上运行。
新2.0.5
更“恰当”的许可规范使其可以作为MATLAB商业应用程序的非独立独立程序的(动态)链接扩展使用。
预编译的pnet.dll可以在matlab 5中运行。x Windows。
新2.0.4
*在Windows平台上运行时的错误被删除。
* pnet_remote可以只调用一次slave数组。
新2.0.3
*支金宝app持单一数据类型。
新2.0.2
*重要的修正UDP支持。金宝app
*调用drawnow使得阻塞操作在窗口中也可以被破坏。
新在2.0.1
* windows版本的bug修复,Sleep()延迟为div.与1000对应于unix Sleep()。
新2.0:
* UDP数据包。
* FAST支持int*, ui金宝appnt*, double, char。
*快速的内部字节交换。
* UDP / IP-demos。
* TCP / IP-demos。
* web演示。
*新的非阻塞远程“eval”matlab表达式的远程主机。
测试工作与MATLAB 5.3/6。包括用于测试平台的已编译的mex文件。C-source应该在任何Unix/Windows系统下编译。并对MATLAB的远程金宝app评估和并行化提供了基本支持。
这个zip包包含包含1.2.4版本的zip包,带有mex文件(*.dll),以便向后兼容。
工具箱:
彼得Rydesater
Peter@Rydesater.se
在Mari金宝appo Bergeron和Mike Medeiros的支持下
欢迎任何来自商业用途的捐赠来赞助这个项目。
TCP/IP连接也包括在MathWorks仪器控制工具箱中:
彼得Rydesater(2021)。TCP / UDP / IP工具箱2.0.6(//www.tatmou.com/matlabcentral/fileexchange/345-tcp-udp-ip-toolbox-2-0-6), MATLAB中央文件交换。检索.
虽然不能正常工作,但Jim Waite的更新确实可以。(如果能开箱即用就好了……)
我使用的是服务器-客户端,Windows10和Matlab 2020a。我按照Jim Waite的建议对c代码做了修改,2017年5月25日发布,阅读效果很好。
我能够用Windows 10/Visual Studio 2019和Matlab 2019b编译pnet: 'mex pnet.c -lWS2_32 -DWIN32'
但是程序在接收UDP包时崩溃,第701行给出了分割错误。
任何人正在使用pnet与UDP在一个最新的系统?
有人试过在R2018a/b或更新版本上运行这个吗?
如果你把步骤写得简短些,会容易些
你好,
如果把它的工作原理写得简短些,将会更有帮助!(如此大的问题)
这就跟你问声好!这是一个应用程序还是史密斯。其他的吗?没有找到。mlappinstall文件。
嗨,伙计们,
我有一个问题。我在windows服务器上运行一个matlab应用程序,它有4个网卡。
我想让我的应用程序有4个实例,每个实例使用不同的网卡去上网。
我可以用tcpip函数或pnet来做这件事吗?
是否有一些扩展包包括对多播的支持?金宝app
为了在Matlab 2017a下运行,需要对pnet.c进行一个小的修改。在函数my_mexReturnArrayFromBuff()中,将本地变量dimms[20]和return_no_dimms的类型从int改为类型"mwSize"。然后重新创建mex文件,崩溃就消失了。
大家好,
我叫EL AMRI Badrayour。我试图在我的计算机(window 7 x64)中完成一个MATLAB R2017a上的mex文件。
mex构建成功完成,但每次我尝试使用一个演示给我的MATLAB崩溃!
你们中有人发生过这种事吗?
谢谢你!
巴达。
请按照丁洁南建议的方法。它适用于windows 7。
只是更新路径,在我的例子中
C: Program Files\MATLAB\R2016b\sys\lcc64\lcc64\lib64\wsock32。自由的-DWIN32
谢谢杰南,你帮我节省了很多时间
很好,但是可以使用pnet连接到指定路径的基于本地unix文件的套接字吗?这对我很有用。
我用MATLAB R2015a在Mac OD EL Capitan上运行这个,太神奇了!!
这是一百万倍的方式,在MATLAB中建立UDP类。非常感谢作者。
它解决了我的关键问题!
我有一个问题编译pnet.c,我有Matlab r2014b x64。像这样使用LCC:
C: Program Files\MATLAB\R2014b\sys\lcc64\lcc64\lib64\wsock32。自由的-DWIN64
(我把#ifdef WIN32改成#ifdef WIN64。)
每次我都得到这样的错误:
无法打开包含文件“winsock2.h”
该文件或目录
它对DWIN32也不起作用。
我查了我的电脑,找到了文件。有什么建议吗?
是否有可能使用这个工具箱与红龙果板通信而不访问仪器控制工具箱?如果有,有人对这个话题有什么建议吗?
这是一个非常大的问题,花了很长时间才找到。所有传入的UDP数据被截断在7位。换句话说,我从另一台机器发送150 170字节,pnet获取数据包并将其称为127 127。看看pnet.c,我似乎有一些双类型转换(char)(unsigned char),这看起来有点可疑。还有人看过吗?
你们中有人用matlab 2012a在MAC OS 10.9上运行了udp sim daq的例子吗?我成功地编译了c文件。但是每次我随后运行转移脚本到sim_daq脚本时,答案如下:
发送请求……
收到……
超时…:- (
和
SIM_DAQ等待请求…
味精:XMITCALLANDGET,结束
发送响应:
远程主机断开连接
1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、END 0.517621 s, 0.74 mb /s
有什么建议吗?提前谢谢!
我有一个问题:
http://de.mathworks.com/matlabcentral/answers/262925-c-file-to-mex-file-pnet-c-in-os-10-9-5-matlab-2012a
工作在64位的R2015b与MinGW编译器(这些指令非常有帮助,有一些编辑:http://stackoverflow.com/questions/8552580/using-gcc-mingw-as-matlabs-mex-compiler).必须包含winsock库(谢谢济南!)否则失败。
杰南:用这个方法你能修正什么错误?
让它在64位win7下工作。试试这个命令。
C: Program Files\MATLAB\R2014b\sys\lcc64\lcc64\lib64\wsock32。自由的-DWIN32
您可能需要更改wsock32.lib的位置。
我已经在matlab 2011a中工作得很好。对2014b的更新造成了严重错误…有没有人有困难运行这个工具箱在matlab 2014b?
您好,请问谁能告诉我如何在ubuntu 14.04LTS上安装这个工具?我真的不能用它。
嗨,彼得。干得好,谢谢你的维护。正如其他人所指出的,在Linux中,mex / gcc在编译pnet.c时出错,因为代码使用了'//'风格的注释,这是非ansi标准的。要在编译时解决这个问题,请使用:
CFLAGS="\$CFLAGS -std=c99
希望这个有帮助。
@汇
看来没有别的选择了。延迟大约是5-45米,但是这个延迟的绝大部分看起来是来自数据本身的实际写入,这意味着对缓冲区的读取相对来说是微不足道的
你好,
我试图从我的控制台通过UDP端口发送命令到matlab,在那里我的仪器被控制。
当我发送一个命令(作为包)从我的控制台,在matlab方面,我总是必须运行'readpacket'和'read'来获得它。
可以跳过这个吗?
谢谢!
有办法选择源IP应该是什么吗?
伟大的工具,
然而我有几个问题:
当我做:
pnet_remote(反对,“状态”)
我得到:
等待连接端口:5678
反对=
-1
START SERVING NEW CONNECTION FROM IP 0.0.0.0 port:0
同样,当我在启动时第一次发出pnet命令时,我得到:
警告:在目录"C:\文档和设置\管理员\我
文档\ Dropbox \ matlab_new \ tcp_udp_ip”,pnet。Mexw32现在隐藏pnet.dll。
请参阅MATLAB 7.1发布说明。
我可以在matlab 2006a中使用这个工具箱吗?如果可以,如何使用?如何有效地安装工具箱?
如果没有,有没有人对我如何能发送udp端口信号而不必从头开始写代码有建议…干杯
有没有人能帮助我如何连接matlab与gnu无线电
我只能说,这个工具箱是一个伟大的服务世界…
我在Ubuntu 9.1上成功编译了它。
然而,在Ubuntu 10.04上编译它总是失败。
有人尝试在Ubuntu 10.04或更高版本上编译这个版本并成功了吗?
谢谢
使用命令"mex pnet.c ws2_32。lib”会产生错误,而我自己又不够精通,无法自行发现问题(我是一名实习生)。
任何人都可以上传x64版本的文件吗?
我编译pnet.c与Matlab 2011a mex编译器使用visual studio 10 c++编译器在Windows 7 / 64位使用命令:
“墨西哥人pnet.c ws2_32.lib”
到目前为止,一切似乎都很顺利。我还把第64行改为
# IFDEF WIN32
来
# IFDEF _WIN64
我相信Windows 7通过安装visual c++和SDK已经解决了这个问题。
真的需要帮助如何编译这个工具箱PNET.c为64 Windows 7?或者这个PNET.c需要移植到windows 64位吗?
我得到错误消息"[recvfrom()或recv()]: WSA错误:WSAEMSGSIZE" UDP接收。有什么建议吗?
我想知道是否有人能帮助我在Windows x64平台上编译这个?我该怎么做呢?我在Windows 7上工作,在我的生活中从来没有编译过任何c代码。或者可能有人只是为x64编译了这个pnet ?
通过如下修改pnet.c,并重新编译mex扩展,我能够实现>512mbps(即0.5千兆/秒)的读或写:
----编辑pnet.c在这里开始----------------
tcp_connect(const char *hostname,const Int port)
{
+ int optval;
+ = 0 int结果;
如果(ipv4_lookup(主机名、端口)= = 1)
返回1;
反对[con_index]。fid =插座(AF_INET SOCK_STREAM 0);
+ optval = 1;
+ result = setsockopt(con[con_index]. conf);fid, +IPPROTO_TCP,TCP_NODELAY,(char *) &optval,sizeof(optval));
+ optval = 512*1024;
+ result = setsockopt(con[con_index]. conf);fid, SOL_SOCKET,SO_SNDBUF,(char *) &optval,sizeof(optval));
+ result = setsockopt(con[con_index]. conf);fid, SOL_SOCKET,SO_RCVBUF,(char *) &optval,sizeof(optval));
---- pnet.c的编辑在这里结束----------------
使用修改后的pnet,使用512kbytes的缓冲区执行pnet读/写调用可以提供非常高的吞吐量。
非常感谢彼得,你的贡献和分享
这个来源非常有用。
如果有人有像'pnet_sendvar bla bla bla'这样的错误,纠正自己pnet_putvar M-file。
-在第46行写"pnet_putvar"而不是"pnet_sendvar"
喜欢。)
有人在MAC OS 10.6.2 Snow Leopard下运行过吗?这似乎使MATLAB处于无限忙碌状态。
当加载最新版本时,控制台输出声明它是2.0.5版本,因为这是硬编码到pnet.c中的版本。这仅仅是表面上的错误吗?
考斯塔斯。格伦德
这招奏效了。非常感谢!
Georg Stillfried
要在Matlab 2009b中编译Linux (9.04 Ubuntu)下的pnet.c,你必须确保注释//被更改为/*…*/
例如:
/ /注释行
成
/*注释行*/
比:
墨西哥人pnet.c
它只是给我一个警告
警告:你使用的gcc版本是"4.3.3-5ubuntu4)"。支持的最早的gcc版本金宝app
mex是“4.1”。与mex一起测试使用的最新版本是“4.2”。
要下载gcc的不同版本,请访问http://gcc.gnu.org
有点奇怪,但它确实可以编译
一个伟大的应用程序。只有一个问题……在仪器控制工具箱的tcpip的MATLAB版本中,有一个名为“OutputBufferSize”的参数。这个包似乎没有任何类似的参数。OutputBufferSize是动态大小的还是有一个我应该知道的固定值?在回答的时候,请把我当成一个TCPIP的初学者……如果你是傻瓜的话,我会很感激的:)
我没有成功编译c文件pnet.c。我在Linux机器上运行Matlab 2009a,内核是2.6.27和4.3.2。gcc编译器。有人能帮我吗?
我收到以下错误信息:
>> mex -O pnet.c
警告:你正在使用gcc版本“4.3.2”。支持的最早的gcc版本金宝app
mex是“4.1”。与mex一起测试使用的最新版本是“4.2”。
要下载gcc的不同版本,请访问http://gcc.gnu.org
Pnet.c:104:错误:期望标识符或'('在' / '标记之前
Pnet.c:170:错误:预期的标识符或'('在' / '标记之前
pnet.c:在函数newbuffsize中:
[…更多错误消息…]
Pnet.c:1158:错误:在“/”标记之前期望的表达式
Pnet.c:1174:错误:在“/”标记之前期望的表达式
编译“pnet.c”失败。
我想在matlab中实现802.11 MAC层
有谁知道任何有用的和相关的工具箱或m.file?
我已经创建了一个简单的程序发送和接收UDP数据包。它不像TCP/UDP/IP Toolbox那样功能丰富或灵活,不支持TCP包或能够处理大量数据,但对某些应用程序来说可能已经足够了。金宝app
在文件交换中搜索“py_udp”。
谁能帮我用一下这个工具箱……
我无法让程序运行。在执行示例时,我得到了错误消息
/ PATH_TO_FILE / pnet.mexglx:
符号mxCreateDoubleMatrix,版本libmx。INTERNAL在libmx文件中没有定义。所以有了链接时间参考。
两周前给作者的一封电子邮件至今未获回复。
不错的工作。谢谢你!
在RedHat下编译时出错:
Pnet.c:104:错误:预期标识符或?(?之前/ ?令牌
等等。修正了通过编辑pnet.c将所有"//"注释改为"/* */"注释格式(例如,注释"// Grow...."变成"/* Grow....*/")。现在,udp_send_demo在Linux上工作,将数据发送到另一台运行udp_plotter_demo的Linux机器。太棒了!
然而,仍然不能让我的Windows机器发送数据到Linux机器。udp_send_demo创建一个值为1的变量“udp”(即一个有效的套接字,我认为);然后
pnet (udp, writepacket、主机端口)
返回一个328的值(大概是发送的字节数?),但是在运行udp_plotter_demo的Linux机器上什么也没有显示。还有其他人有类似的经历吗?
谢谢!
等待手册
太好了。谢谢。
优秀的功能,非常有用。
出色的方案。我有个很简单的疑问也许你能帮我。我可以通过这个套接字发送消息,我可以在我的客户端应用程序和套接字之间建立连接,但我不能读取从我的客户端应用程序发送到我的MATLAB套接字的消息。我需要做什么来读取和存储这些信息?
谢谢你的帮助
这是一个非常好的包,非常好地涵盖了基本的内容。然而,我发现它并不能完全满足我的需求,因为我找不到一种生成事件的方法(例如,当数据在端口可用时调用回调函数)。如果真的有这样做的方法,那么作者可以纠正我的评论,但在此期间,我已经成功地使用了一个第三方ActiveX控件(来自Catalyst Software的SocketWrench),它提供了这个功能,低于100美元。
为什么要为你可以免费得到的东西付钱呢:-)
MATLAB现在通过仪表控制工具箱直接支金宝app持这些协议。访问TCP/IP和UDP网页获取更多信息和可下载的MATLAB代码示例:
//www.tatmou.com/tcpip
和
//www.tatmou.com/udp
出色的工作!在WinXP SP2的MATLAB V7下运行tcpipmex.dll (tcpip -1.2.4和相关的打开,读,写,状态)而不需要重新编译。这真是节省时间。
的技巧……
试图在winsock套接字上编译一个类似的工具箱,但没有成功..这正是我要找的!
很好的工具。发现有必要重新编译,以便在Windows XP/Matlab 7.3和7.4中使用,但这是非常简单的-只需遵循pnet.c报头中的说明(一个单一的mex命令)。
非常灵活的独立工具。
谢谢的
很好的工具
优秀的工具。谢谢
谢谢
好的工作. .
我可以使用它连接到Windows 2000上的IIS和交换变量或参数(字符串或文本)到我的ASP页面?
它能像Web服务器连接一样工作吗?
我下载的zip文件中没有sendvar文件
任何帮助吗?
谢谢
这个工具箱可以很好地编译,并在mac os X上正常工作。是啊!用matlab 7.0.1测试。10.3.2。只需对主pnet.c文件使用mex命令,它将生成pnet.mexmac。
我正在寻找一种方法做TCP/IP通信通过MATLAB和这个工具箱给我的解决方案,我需要。
也许有必要改进文档并添加一些示例。
黑客神秘的不可用的代码值得你为之付出。
软件工程不是做一行没有人能维护的APL代码
这是一份出色的工作,正好满足我的需要。但是当我试图“关闭”连接时,出现了一些错误,因为服务器显示“忙”,即使在客户端的工作空间中执行了命令“pnet_remoet(con,'close')”。等待答案!谢谢你!
这正是我想要的。感谢很多。
太棒了。谢谢。
优秀的功能,易于使用。不错的工作!
非常好的包和良好的文档。很多谢谢!
太好了-正是我想要的
所有文章都是mi的重要和必要的,问题是英语,谢谢。我在México, d.f.上学习生物医学工程师,很抱歉我的英语不好,by。
优秀的功能,非常有用。
非常良好的设计;填补了MathWorks多年来忽略的一个巨大空白。
可以很容易地用于TCP和UDP与一个微小的变化,在命令行。
一个非常有用的进程间通信工具。遗憾的是,在实际的版本(1.2)中没有包含windows-dll,并且。c-file不能用lcc编译,所以我必须使用linux版本;-)