在vs2015编译socket客户端程序时候返回-1 5

#include<winsock2.h>#include<stdio.h>#include<WS2tcpip.h>#pragmacomment(lib,"WS2_32.l... #include<winsock2.h>
#include<stdio.h>
#include<WS2tcpip.h>
#pragma comment(lib,"WS2_32.lib")
int main()
{
WSADATA data;
WORD w = MAKEWORD(2, 2);
WSAStartup(w, &data);
SOCKET s;
char text[10] = { 0 };
s = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = (4999);
addr.sin_addr.S_un.S_addr = inet_pton(AF_INET, "127.0.0.1", &addr);
printf("客户端已启动!\r\n");
if (connect(s, (sockaddr*)&addr, sizeof(addr))<0)
{
printf("connect failed!:%d\r", WSAGetLastError);
return(-1);
}
recv(s, text, sizeof(text), 0);
printf("%s\r\n", text);
closesocket(s);
WSACleanup();
return(0);
}
就是老是返回-1秒退啊~
展开
 我来答
xushiladeng
2015-04-27 · TA获得超过101个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:101万
展开全部
楼主,你这代码没有设置 异步套接字,是阻塞模式,阻塞模式,connect 返回 -1 就是,目的端口不可达,你这是连接本机的 4999 端口吗?那肯定连接不上了,如果是要连接本机 4999端口,应该将 addr.sin_port = (4999); 改成 addr.sin_port = htons(4999);转换成网络序才可以的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式