当前位置:  技术问答>linux和unix

need your help! 网络编程中出现bind error!!谢谢!

    来源: 互联网  发布时间:2015-09-24

    本文导语:  我自己做个实验,就是写一个服务器端的小程序,监听客户端的请求,然后接收客户端发来的数据。 编译没有问题,但是在运行的时候,出现了下面的错误报告:bind:Socket operation on non-socket 请教大侠,我的程序中...

我自己做个实验,就是写一个服务器端的小程序,监听客户端的请求,然后接收客户端发来的数据。
编译没有问题,但是在运行的时候,出现了下面的错误报告:bind:Socket operation on non-socket
请教大侠,我的程序中都是按照书上的例子编写的啊,怎么会出现这个错误,谢谢!!!

下面是程序的源代码:


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORT 10000

#define MAXBUFF 50

int main()
{
        int sockfd, new_sock;
        struct sockaddr_in addr;

        int sin_size;
        int numbytes;
        char buffer[MAXBUFF];

        if(sockfd=socket(AF_INET,SOCK_STREAM,0)==-1)
        {
                perror("socket");
                exit(1);
        }

        addr.sin_family=AF_INET;
        addr.sin_port=htons(PORT);
        addr.sin_addr.s_addr=INADDR_ANY;
        bzero(&(addr.sin_zero),8);

        if(bind(sockfd,(struct sockaddr *)&addr,sizeof(struct sockaddr))==-1)
        {
                perror("bind");
                exit(1);
        }

        if(listen(sockfd,5)==-1)
        {
                perror("listen");
                exit(1);
        }

        while(1)
        {
                sin_size=sizeof(struct sockaddr_in);

                if(new_sock=accept(sockfd,(struct sockaddr*)&addr,&sin_size)==-1)
                {
                        perror("accetp");
                        continue;
                }

                if(!fork())
                {
                        if(numbytes=recv(new_sock,buffer,MAXBUFF,0)==-1)
                        {
                                perror("recv");
                                close(new_sock);
                                exit(0);
                        }

                        printf("the new_dgw is:%sn",&buffer);
                        close(new_sock);
                        while(waitpid(-1,NULL,WNOHANG)>0);

                }
        }
}


|
if(sockfd=socket(AF_INET,SOCK_STREAM,0)==-1)

改成
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 安装 eva 出现We need a working libXext to proceed
  • java命名空间javax.print.attribute.standard类printerstatereason的类成员方法: media_needed定义及介绍
  • 各位好,请问,need_resched()函数的定义在那里?我怎么没找
  • java命名空间java.awt类scrollpane的类成员方法: scrollbars_as_needed定义及介绍
  • 启动盘坏了,need 一个vmlinuz文件
  • java命名空间javax.swing接口scrollpaneconstants的类成员方法: vertical_scrollbar_as_needed定义及介绍
  • 1254-055 Dependency line needs colon or double colon operator
  • java命名空间javax.swing接口scrollpaneconstants的类成员方法: horizontal_scrollbar_as_needed定义及介绍
  • you may need to load some drivers(modules) support your hardware
  • java命名空间javax.net.ssl枚举sslengineresult.handshakestatus的类成员方法: need_task定义及介绍
  • I need a tftp program!!!
  • java命名空间javax.net.ssl枚举sslengineresult.handshakestatus的类成员方法: need_wrap定义及介绍
  • need help
  • java命名空间javax.net.ssl枚举sslengineresult.handshakestatus的类成员方法: need_unwrap定义及介绍
  • make: 1254-057 Shell command needs a leading tab
  • rpmlib filedigests 4.6.0-1 is needed
  • 【求助】已经安装了libstdc++.so.5 还是报错“libstdc++.so.5 is needed by”
  • 【need help】驱动里读写“挂了“ (readl,writel不返回)
  • libc.so.6(GLIBC_2.4) is needed by MySQL-client-community-5.0.67-0.rhel5.i386
  • pool data in multi servers,need data consistent
  • parse error before ',' need help!!!
  • 在Redhat9下,我用rpm -ivh vsftp*(*代表版本号) 时提示 "libcap.so.1 need by vsftpd* " ,为什么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3