「已注销」 2018-07-27 08:45 采纳率: 0%
浏览 1819
已结题

客户端创建socket失败,求解

#pragma comment(lib,"ws2_32.lib")
#include
#include
#include
void main(int argc,char *argv[])
{
WSADATA wsaData;
SOCKET s;
SOCKADDR_IN ServerAddr;
int Ret;
int Port = 5150;

if(argc <= 1)
{
    printf("USAGE:TCPClient <Server IP address>.\n");
    system("pause");
    return;
}


if((Ret = WSAStartup(MAKEWORD(2,2),&wsaData)) != 0)
{
    printf("WSAData failed with error %d\n",Ret);
    return;
}
//创建新的Socket
if((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))=INVALID_SOCKET)
{
    printf("socket failed with error %d\n",WSAGetLastError());
    WSACleanup();
    return;
}
//连接
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(Port);
ServerAddr.sin_addr.S_un.S_addr = inet_addr(argv[1]);
printf("We are btrying to connect to %s:%d...\n",inet_ntoa(ServerAddr.sin_addr),htons(ServerAddr.sin_port));
if((connect(s,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR))
{
    printf("connect failed with error %d\n",WSAGetLastError);
    closesocket(s);
    WSACleanup();
    return;
}
printf("our connect succeeded.\n");
printf("we will now try to send a 'Hello' massage.\n");
if((Ret = send(s,"Hello",5,0))== SOCKET_ERROR)
{
    printf("send failed with error %d\n",WSAGetLastError);
    closesocket(s);
    WSACleanup();
    return;
}

printf("We successfully sent %d bytes.\n",Ret);
printf("We are closing the connection.\n");
closesocket(s);
WSACleanup();
system("pause");

}

  • 写回答

2条回答

  • ailaillia 2018-07-27 09:12
    关注

    if((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
    {
    printf("socket failed with error %d\n",WSAGetLastError());
    WSACleanup();
    return;
    }
    两个等号

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!