最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

linux网路编程socket做服务端代码

来源:动视网 责编:小OO 时间:2025-09-23 06:45:13
文档

linux网路编程socket做服务端代码

Linux网路编程用socket函数创建客户端,下面例子执行成功,客户端在我的另一个文档。执行是:./可执行文件名端口号#include#include#include#include#include#include#include#include#includevoidsig_handler(intsigno){pid_tpid;intstat;pid=waitpid(-1,&stat,WNOHANG);while(pid>0){printf("childprocessterminated(
推荐度:
导读Linux网路编程用socket函数创建客户端,下面例子执行成功,客户端在我的另一个文档。执行是:./可执行文件名端口号#include#include#include#include#include#include#include#include#includevoidsig_handler(intsigno){pid_tpid;intstat;pid=waitpid(-1,&stat,WNOHANG);while(pid>0){printf("childprocessterminated(
Linux网路编程用socket函数创建客户端,下面例子执行成功,客户端在我的另一个文档。

执行是:./可执行文件名   端口号

#include

#include

#include

#include

#include

#include

#include

#include

#include

void sig_handler(int signo)

{    pid_t pid;

    int stat;

    pid=waitpid(-1,&stat,WNOHANG);

while(pid>0){

        printf("child process terminated (PID: %ld)\\n",(long)getpid());

        pid=waitpid(-1,&stat,WNOHANG);

    }

    return;

}

int main(int argc,char *argv[])

{

    socklen_t clt_addr_len;

    int listen_fd;

    int com_fd;

    int ret;

    int i;

    static char recv_buf[1024];    

    int len;

    int port;

    pid_t pid;

    struct sockaddr_in clt_addr;

    struct sockaddr_in srv_addr;

    if(argc!=2){

        printf("Usage: %s port\\n",argv[0]);

        return 1;

    }

    port=atoi(argv[1]);

if(signal(SIGCHLD,sig_handler)<0){

        perror("cannot set the signal");

        return 1;

    }

    listen_fd=socket(PF_INET,SOCK_STREAM,0);

if(listen_fd<0){

        perror("cannot create listening socket");

        return 1;

    }

    memset(&srv_addr,0,sizeof(srv_addr));

    srv_addr.sin_family=AF_INET;

    srv_addr.sin_addr.s_addr=htonl(INADDR_ANY);

    srv_addr.sin_port=htons(port);

    ret=bind(listen_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr));

    if(ret==-1){

        perror("cannot bind server socket");

        close(listen_fd);

        return 1;

    }

    ret=listen(listen_fd,5);

    if(ret==-1){

        perror("cannot listen the client connect request");

        close(listen_fd);

        return 1;

    }

        while(1){

        len=sizeof(clt_addr);

        com_fd=accept(listen_fd,(struct sockaddr*)&clt_addr,&len);

     if(com_fd<0){

            if(errno==EINTR){

                continue;

            }else{

                perror("cannot accept client connect request");

                close(listen_fd);

                return 1;

            }

        }

        pid=fork();

     if(pid<0){perror("cannot create the child process");

            close(listen_fd);

            return 1;

        }else if(pid==0){

         while((len=read(com_fd,recv_buf,1024))>0){

                recv_buf[len] = '\\0';

                printf("Message from client(%d): %s\\n",len,recv_buf);

                if(recv_buf[0]=='@')

                    break;

             for(i=0;i                    recv_buf[i]=toupper(recv_buf[i]);

                write(com_fd,recv_buf,len);

            }

        close(com_fd);

        return 0;

        }else

            close(com_fd);

    }    

        return 0;

}

文档

linux网路编程socket做服务端代码

Linux网路编程用socket函数创建客户端,下面例子执行成功,客户端在我的另一个文档。执行是:./可执行文件名端口号#include#include#include#include#include#include#include#include#includevoidsig_handler(intsigno){pid_tpid;intstat;pid=waitpid(-1,&stat,WNOHANG);while(pid>0){printf("childprocessterminated(
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top