连接拒绝模型实时目标端口万博1manbetx

9的观点(30天)
你好,
我试图使用套接字(socketfuncs.h)模型实时R2017b目标C s函数。万博1manbetx
我有一个客户端套接字和一些数据发送给服务器。
在未来stept我要开一个监听套接字(服务器)和接受传入的连接和读取数据,如果有任何。运行服务器套接字的非阻塞。在mdlOutput()函数使用accept()函数来反复寻找传入的连接。
当我运行该服务器并尝试连接一个tcp客户机(例如telnet),我得到一个拒绝连接错误。TCP错误10061。我尝试不同的端口的范围20000 - 33000年,80年。防火墙是禁用的。
我想要检查哪些端口是打开SLRT目标,但我无法弄清楚如何去做。
/ * * *全局变量* * * /
套接字ClientSocket = 0;
套接字考察一下= 0;
boolConnReady = false;
uint_TlocalPort = 32000;
uint_T发送= 20000;
char_TtargetAddress [16] = " 192.168.8.13 ";
静态空白mdlOutputs (SimStruct * S, int_T tid)
{
字符消息[2500];
char server_reply [2000];
int recv_size = 0;
套接字_acceptSocket;
/ /准备数据发送
sprintf(消息,“喂!我本SLRT Tcp / Ip客户端。\ n”);
/ /发送一些数据
如果(发送(ClientSocket、消息、strlen(消息),0)< 0)
{
printf (“发送失败\ n”);
}
/ /服务器:检查输入数据
如果(! ConnReady)
_acceptSocket =接受(考察一下,空,空);
intbytesSent;
intbytesRecv = SOCKET_ERROR;
字符recvbuf [200] = " ";
字符sendbuf [200] = " ";
如果(_acceptSocket ! = INVALID_SOCKET)
{
ConnReady = true;
考察一下=_acceptSocket;
}
如果(ConnReady)
{
bytesRecv = recv (ServerSocket recvbuf 200,0);
如果(bytesRecv = = SOCKET_ERROR)
printf (“服务器:recv()错误% ld。\ n”,每个盘());
其他的
{
printf (“字节收到:% ld,接收的数据是:\”% s \“\ n”、bytesRecv recvbuf);
}
}
其他的
printf (“接受失败:% d。”,每个盘());
}
同时,似乎有一个偏移量从socketfuncs报告的错误。h函数。例如接受()返回112。尽管112年socketfuncs没有定义。h时,我可以看到
#定义EDESTADDREQ 12 / *目的地址是必需的 / # define RTIP_ERRNO 100 / RTIP错误数量抵消 * /
所以它是安全的假设我总是从getlasterrror当使用减号RTIP_ERRNO socketfuncs吗?
谢谢你很多。

答案(1)

乔恩·洛沃
乔恩·洛沃 2018年7月3日
它不是通过一个功能推荐这样做。我建议使用TCP块: //www.tianjin-qmedu.com/help/xpc/tcp.html

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!