拜托,这是我第一次尝试使用套接字进行编程。我使用 C++ MFC,并尝试让应用程序通过其 TCP/IP 地址与视频服务器控制器进行通信。
我做了所有的第一步,没有错误。我创建了一个套接字,我调用bind()
函数来关联地址,但是当我尝试连接时它不起作用。
我不知道我是否做错了什么,所以我将部分代码放在下面。
struct sockaddr_in my_addr;
int lenAddrs;
b1 = 192;
b2 = 168;
b3 = 11;
b4 = 2;
remoteAddress.Format("%u.%u.%u.%u", b1, b2, b3, b4);
port = (u_short)(portNumber);
// my address
memset(&my_addr, 0, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
lenAddrs = sizeof(my_addr);
// remote address
memset(&remote_addr, 0, sizeof(remote_addr));
remote_addr.sin_family = AF_INET;
remote_addr.sin_port = port;
inet_pton(AF_INET, remoteAddress, (&remote_addr.sin_addr));
// socket
sckSloMo = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sckSloMo == INVALID_SOCKET)
{
AfxMessageBox("sckSloMo is invalid!!");
return;
}
if (sckSloMo != SOCKET_ERROR)
{
ret = bind(sckSloMo, (const sockaddr*) &my_addr, sizeof(my_addr));
if (ret == 0)
{
ret = connect(sckSloMo, (const sockaddr*) &remote_addr, sizeof(remote_addr));
if (ret == 0)
{
AfxMessageBox("connect!");
StartSendingMessages();
}
else
{
AfxMessageBox("connect error!!!");
return;
}
}
}
如果有人可以帮助我,我会很高兴。