当我使用文本框中的主机 IP 时,我无法将它连接到我的服务器。查看我的代码:
char *bufhost;
int bufhostlen;
bufhostlen = GetWindowTextLength(hwndTextBox_ip) + 1;
GetWindowText(hwndTextBox_ip, bufhost, bufhostlen);
sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(5060);
sin.sin_addr.s_addr=inet_addr(bufhost);
connect(sock,(LPSOCKADDR)(&sin),sizeof(sin));
如果我使用
sin.sin_addr.s_addr=inet_addr("127.0.0.1");
它连接没有问题。
我真的不知道如何完成这项工作(搜索了几个小时......)感谢您的帮助:-)
解决方案 :
正如 PermanentGuest 告诉我的,我必须为我的缓冲区分配内存:
char *bufhost;
int bufhostlen;
bufhostlen = GetWindowTextLength(hwndTextBox_ip) + 1;
bufhost = (char*) malloc(bufhostlen);
GetWindowText(hwndTextBox_ip, bufhost, bufhostlen);
sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(5060);
sin.sin_addr.s_addr=inet_addr(bufhost);
connect(sock,(LPSOCKADDR)(&sin),sizeof(sin));