电脑通过网口连接三菱PLC,可以ping的通,但用以下代码就一直报10061的错误:
int main()
{
// initialize winsock
WORD wVer = MAKEWORD(1, 1); // version NO:1.1, #include <WINSOCK.H>
WSADATA wData;
int err = WSAStartup(wVer, &wData);
if (err)
{
printf("cannot initialize WinSock\n");
return 1;
}
// 建立SOCKET通信
SOCKET s = 0;
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(1); // ASA standard port
server.sin_addr.s_addr = inet_addr("192.168.3.250");
// 建立CONNECT连接
int i = connect(s, (sockaddr *)&server, sizeof(sockaddr_in));
if (i < 0) // #define SOCKET_ERROR (-1)
{
printf("connect - error %d\n", WSAGetLastError());
closesocket(s);
WSACleanup();
return 1;
}
return 0;
}
运行到connect指令就会返回10061的错误码,在cmd里ping 192.168.3.250是没问题的,但是htons( )里的端口号我不能确定,也不知道三菱PLC有没有默认的端口号,试了很多,除了给0会报10049的错误外,其它都是报10061。
麻烦那位大神帮忙看一下,头大,试了一天了