多进程以及多线程socket编程

在我的上篇博客中已经详细介绍了socket编程中所需要的函数,在这里就不过多介绍了,有需要的话可以参考上一篇博客:http://blog.csdn.net/qq_36221862/article/details/73611942

多进程,多线程socket编程与单进程不同的只是服务器端的不同,客户端是一样的。

多进程:父进程fork子进程, 子进程退出,但是子进程的子进程仍在运行,变成了孤儿进程,由1号进程回收,父进程不用等待子进程的子进程的退出,它俩是爷孙进程,不用回收子进程。

        pid_t id = fork();
        if(id < 0)
        { 
            close(new_sock);
        }
        else if(id == 0) //子进程
        { 
            close(listen_sock); //关闭不必要的文件描述局,不关闭的话,文教描述符表会越来越少,造成资源的浪费
            if(fork() > 0)
            { 
                exit(1);
            }
            else if(id == 0)
            { 
                //服务客户端
            }
            else
            {
                close(new_sock);
            }
        else
        {
            close(new_sock);
        }

多进程socket编程服务器端代码:

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <errno.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>

static void usage(const char* proc)  //使用说明
{ 
     printf("Usage:%s [local_ip] [local_port]\n", proc);
}

int startup(const char* _ip, int _port) //创建套接字
{ 

//  int sock = socket(AF_INET, SOCK_STREAM , 0);
//  if(sock < 0)
/// { 
//  
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值