程序运行:开启多个终端,一个服务器,其余的是客户端(包括一个取号机和多个柜台叫号机)

问题:我把服务器和多个客户端程序可以正常运行,但当我按 ctr+c 键杀掉一个客户端后,服务器端的程序也会死掉,

请问怎样才能使 杀死客户端程序 而不使服务器端程序死掉?  要怎样修改程序,请高手指教。

下面是我的源程序:

服务器 server.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

/* 定义端口号,须大于1024 */

#define PORT 8888

//#define BUF_SIZE 1024

/* 信息宏 */

#define GEN_GOTAL 1  /* 普通业务总人数 */

#define GEN_CUR   2  /* 普通业务当前服务的号码 */

#define VIP_TOTAL 3  /* vip业务总人数 */

#define VIP_CUR   4  /* vip业务当前服务的号码 */

#define FROM_GET_NUM   5 /* 为取号机创建线程 */

#define FROM_CALL_NUM  6 /* 为叫号机创建线程 */

/* 存储服务人数信息结构定义 */

typedef struct

{

int gen_total_num;  /* 普通业务总人数 */

int gen_cur_num; /* 普通业务当前服务的号码 */

int vip_total_num; /* vip业务总人数 */

int vip_cur_num; /* vip业务当前服务的号码 */

}info_bank;

info_bank info_people;

/* 线程执行函数负责读写 */

void *server_client( void *arg );

/* 初始化服务信息 */

void init_info(info_bank *info_people);

void save_info_getnum(info_bank *info_people, int operation); /*保存取号机发来的信息*/

void save_info_call(info_bank *info_people, int operation); /*保存叫号机发来的信息*/

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;

int len;

pthread_t tid;

struct sockaddr_in clt_addr;

struct sockaddr_in srv_addr;

init_info(&info_people);

/* 创建套接字用于服务器的监听 */

listen_fd = socket(PF_INET, SOCK_STREAM, 0);

if (listen_fd

您可能感兴趣的文章:

Linux下编写简易取号机系统,linux socket编程问题,下面是我做的一个简单的模拟银行排队叫号系统。...相关推荐

  1. 排队叫号 服务器 不同区域显示,银行排队叫号系统,让你摆脱排队久的问题!...

    原标题:银行排队叫号系统,让你摆脱排队久的问题! 银行排队叫号系统主要由服务器.取号机.集中液晶屏.液晶窗口显示通屏.语音系统.线缆连接部件及其他辅件等组成. ① 网络平台:可以是大厅的局域网络,系统 ...

  2. mfc 子窗体 按钮不触发_资深程序员用c++开发MFC银行排队叫号系统,小白看了也能学会...

    这个C++ 银行排队叫号系统是看了书后写出来的程序,运用于MFC理念编写,我看的书是谭浩强的<C++面向对象程序设计>相对计科的书少了前六章 直接从对象讲起,这本书也是本班使用人数最多的一 ...

  3. VS+Qt+C++银行排队叫号系统

     程序示例精选 VS+Qt+C++银行排队叫号系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对<<VS+Qt+C++银行排队叫号系统& ...

  4. 基于java+ssm+vue+mysql的银行排队叫号系统

    项目介绍 银行排队叫号系统是以科学合理的机构组织合作.流畅疏通的信息渠道为平台,以客户基本信息.计算机.Internet网络.网络管理软件信息技术为手段建立的信息服务管理系统.系统将借助高速和先进的计 ...

  5. 基于单片机的银行排队叫号系统(Keil工程文件+Proteus仿真原理图+过程详解+全套文档)

    目 录 摘 要 I ABSTRACT II 1 绪论 1 1.1 课题来源 1 1.2 国内外发展状况 1 1.3 有线系统与无线系统 3 1.4 发展前景 4 1.5 系统的设计目的 4 2 系统的 ...

  6. Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...

    转:https://blog.csdn.net/lugandong/article/details/72468831 一. 拿512fs说话: 看图知道采样的位深是32bit(位),左右声道各占了8* ...

  7. 银行排队叫号系统的模拟

    模拟20秒的输出结果: --------模拟开始-------- 初始化用户: 普通客户 进入排队, 编号:1000 VIP客户  进入排队,  编号:1001 普通客户 进入排队, 编号:1002 ...

  8. 专业的LaTeX: 在Linux下编写高质量的文档

    专业的LaTeX: 在Linux下编写高质量的文档 Linux下的OpenOffice.KWord等字处理软件虽然在功能上与Microsoft Word类似,但目前在易用性和可用性方面仍然存在许多不足 ...

  9. Linux下编写贪吃蛇游戏

    Linux下编写贪吃蛇游戏 文章目录 Linux下编写贪吃蛇游戏 前言 一.贪吃蛇代码 二.运行贪吃蛇代码 前言 本程序需要ncurses库,ubuntu下安装ncurses可以执行下面命令: sud ...

  10. Linux运行911,韦东山-Linux下编写GT911触摸驱动 - 百问网嵌入式问答社区

    源码在最下面 问题一:资源获取Gt911数据手册 在韦老师给的资料里,路径为\06_Datasheet\Extend_modules\7寸LCD模块\电容触控芯片GT911 Datasheet_121 ...

最新文章

  1. Android拖拽详解
  2. 计算机模拟生态系统,生态系统模拟方法.ppt
  3. 梁建章的多米诺,混合办公的未知数
  4. 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀
  5. TreeView控件的基本使用 界面篇 winform
  6. opencv 轮廓 缺陷检测
  7. python django ajax 逻辑推理_python django初识ajax
  8. 【李宏毅机器学习HW2】
  9. 【学习笔记】用Excel制作随机抽奖器(Visual Basic编程)。
  10. c语言学习笔记(持续更新中)
  11. 同一包(package)下,两个不同类的调用操作详解
  12. Rust Async: smol源码分析-Executor篇
  13. java hypot_Java Math类静态double hypot(double d1,double d2)与示例
  14. python 离群值_python:删除离群值操作(每一行为一类数据)
  15. 关于 字号、PX像素、PT点数、em、CM厘米、MM毫米之间的换算
  16. 【Docker】win7安装docker及镜像加速
  17. Spring学习-Spring核心技术(九)
  18. Mac M1 Pro下载node.js
  19. Windows系统下安装ROS系统
  20. 误删sd卡文件怎么恢复

热门文章

  1. Linux镜像下载及虚拟机中安装
  2. 数学建模编程用c语言,C程序设计一百例--用c语言解决数学建模问题.doc
  3. IPO | 经纬恒润登科创板,好赛道下隐患依然很突出
  4. 【经典】具有中国特色的脑筋急转弯
  5. 图形学基础|深度缓冲(DepthBuffer)
  6. 角谱 matlab,关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
  7. 全息过山车:巨蚁数字全息刺激体验
  8. 企业微信网页授权初试
  9. Mac好用的图片压缩软件——JPG Compress 2 for Mac
  10. 移远EC20、EC200S-CN上网测试