| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3768 人关注过本帖
标题:套接字绑定失败、监听失败....求解
只看楼主 加入收藏
ycyu1455
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-4-3
结帖率:33.33%
收藏
已结贴  问题点数:15 回复次数:4 
套接字绑定失败、监听失败....求解
//我已经按书籍要求加入库模块ws2_32.lib,先运行服务器,在运行客户端的,但是客户端运行不起来,这个是运行效果
图片附件: 游客没有浏览图片的权限,请 登录注册




-------------------------------------这个是服务器这边的编程
#include<stdio.h>
#include<winsock.h>

int main()
{
    char Sendbuf[100];
    char Receivebuf[100];
    int SendLen;
    int ReceiveLen;
    int Length;

    SOCKET socket_server;
    SOCKET socket_receive;

    SOCKADDR_IN Server_add;
    SOCKADDR_IN Client_add;

    WORD wVersionRequested;
    WSADATA wsaData;
    int error;

    wVersionRequested=MAKEWORD(2,2);

    error=WSAStartup(wVersionRequested,&wsaData);
    if(error!=0)
    {
        printf("加载套接字失败!");
        return 0;
    }

    if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2)
    {
        WSACleanup();
        return 0;
    }

    Server_add.sin_family=AF_INET;
    Server_add.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
    Server_add.sin_port=htons(5000);

    socket_server=socket(AF_INET,SOCK_STREAM,0);

    if(bind(socket_server,(SOCKADDR*)&Server_add,sizeof(SOCKADDR))==SOCKET_ERROR)
    {
        printf("绑定失败\n");
    }
   
    if(listen(socket_server,5)<0)
    {
        printf("监听失败\n");
    }

    Length=sizeof(SOCKADDR);

    socket_receive=accept(socket_server,(SOCKADDR*)&Client_add,&Length);
    if(socket_receive==SOCKET_ERROR)
    {
        printf("接受连接失败");
    }
   
    while(1)
    {
        ReceiveLen=recv(socket_receive,Receivebuf,100,0);
        if(ReceiveLen<0)
        {
            printf("接收失败\n");
            printf("程序退出\n");
            break;
        }
        else
        {
            printf("client say: %s\n",Receivebuf);
        }
        printf("please enter message:");
        scanf("%s",Sendbuf);
        SendLen=send(socket_receive,Sendbuf,100,0);
        if(SendLen<0)
        {
            printf("发送失败\n");
        }
    }
    closesocket(socket_receive);
    closesocket(socket_server);
    WSACleanup();
    return 0;
}


-------------------------------------这个是客户端这边的编程
#include<stdio.h>
#include<winsock.h>            //调试前注意添加库模块ws2_32.lib

int  main()
{

    char Sendbuf[100];               
    char Receivebuf[100];            
    int    SendLen;                    
    int    ReceiveLen;                    

    SOCKET socket_send;               

    SOCKADDR_IN Server_add;            

    WORD wVersionRequested;            
    WSADATA wsaData;               
    int error;                        



    wVersionRequested = MAKEWORD( 2, 2 );   
               
    error = WSAStartup( wVersionRequested, &wsaData);
    printf("%d",error);
    if(error!=0)
    {
        printf("加载套接字失败!");
        return 0;                    
    }
               
    if ( LOBYTE( wsaData.wVersion ) != 2 ||
           HIBYTE( wsaData.wVersion ) != 2 )
    {   
        WSACleanup( );               
        return 0;                    
    }


    Server_add.sin_family=AF_INET;

    Server_add.sin_addr.S_un.S_addr = inet_addr("192.168.1.238");
    Server_add.sin_port=htons(5000);/*端口号*/



    socket_send=socket(AF_INET,SOCK_STREAM,0);


    if(connect(socket_send,(SOCKADDR*)&Server_add,sizeof(SOCKADDR)) == SOCKET_ERROR)
    {
        printf("连接失败!\n");
    }

    while(1)   
    {   
        printf("please enter message:");
        scanf("%s",Sendbuf);
        SendLen = send(socket_send,Sendbuf,100,0);        
        if(SendLen < 0)
        {
            printf("发送失败!\n");
        }

        ReceiveLen =recv(socket_send,Receivebuf,100,0);
        if(ReceiveLen<0)
        {
            printf("接收失败\n");
            printf("程序退出\n");
            break;
        }
        else
        {
            printf("Server say: %s\n",Receivebuf);
        }   
    }

    closesocket(socket_send);
    WSACleanup();
    return 0;
}
搜索更多相关主题的帖子: include 服务器 客户端 书籍 
2016-07-30 16:25
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:15 
“客户端运行不起来”,看异常提示信息是服务器端出现的?
2016-07-30 16:44
ycyu1455
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-4-3
收藏
得分:0 
回复 2楼 吹水佬
是我搞错了 ,我只运行了两个实例1(服务器端)

[此贴子已经被作者于2016-7-30 21:47编辑过]

2016-07-30 16:55
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
就是说,服务器端运行出现异常,客户端就无必要再去运行。
先排除服务器端运行异常情况,从创建套接字开始检测。
2016-07-30 17:10
yy1530178642
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-5-26
收藏
得分:0 
楼主,问一下这个你怎么解决的,我也是同样的问题
2019-05-26 13:04
快速回复:套接字绑定失败、监听失败....求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020287 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved