linux pid t 头文件_linux实现多个客户端通信

e87d09043f2890d747da4a1c0460d0d6.png e87d09043f2890d747da4a1c0460d0d6.png e87d09043f2890d747da4a1c0460d0d6.png e87d09043f2890d747da4a1c0460d0d6.png

2020.07.22

linux分享

#01#前言

5f8b574ee68d351a4391d762b4590c9f.png

5f8b574ee68d351a4391d762b4590c9f.png

前言:

    在整理上学期资料同时将部分代码分享,将以代码书写时间为时间线,按优化程度逐步发出,代码均为在linux下c编程。

本次内容:

    由客户端和服务端组成,可支持多个客户端之间通信

本文分成4部分

1、图片演示

2、代码截图

3、思路说明

4、下载地址

#OVER#

e8714324599d0be7254492cb950c2cb4.png

#02#图片演示

1394652657d33786bf28a4058bd328b8.png

#OVER#

e8714324599d0be7254492cb950c2cb4.png

#03#代码截图

0025ce0ecfa3bd3571b59a3854ed3622.png 19a80500bb9cfae2c3efda021ebf9c94.png 头文件:xxlx.h

/*

 * char.h

 *

 *  Created on: 2020年5月22日

 *      Author: wu

 */

#ifndef CHAR_H_

#define CHAR_H_

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

typedef struct{

pid_t pid;

char name[64];

int used;//0free 1sued

}client_t;

#define zd 64

typedef struct{

pid_t pid;

char name[64];

char text[1024];;//0free 1sued

}tx_t;

typedef struct{

long type;

tx_t tx;

}tx_msg;

#define tx_sise (sizeof(tx_msg)-sizeof(long))

#define server_key 0x3330001

#define xx_key 0x3330002

typedef struct{

long type;

#define server_login 0x01

#define server_out   0x02

#define server_list 0x03

union{

client_t client;

client_t clients[zd];

}data;

}server_msg;

#define server_sise (sizeof(server_msg)-sizeof(long))

#endif /* CHAR_H_ */

#OVER#

e8714324599d0be7254492cb950c2cb4.png

#04#思路说明

思路说明

1、服务器维护一个在线列表,记录登录客户端的pid和用户名,以pid作为客户端之间的通信类型

2、客户端使用线程接受来自其它客户端的消息

3、服务器定义有三种消息队列数据类型,分别是登录,退出,请求在线列表;在接受到请求在线列表后,会以请求者的pid为消息类型发送回去。

#OVER#

e87d09043f2890d747da4a1c0460d0d6.png e87d09043f2890d747da4a1c0460d0d6.png e87d09043f2890d747da4a1c0460d0d6.png

#05#结尾->获取方式

e8714324599d0be7254492cb950c2cb4.png

下载地址:

公众号内回复【char2】即可获取下载链接

#OVER#

点击下方图片进入linux讨论区

201efaabff235fcdf31a6fe301ac0578.png

视频来源:科学大世界

文字:科学大世界

图片:科学大世界

文章封面图:网络

如有侵权请到公众号内意见反馈处反馈

???

57984301d56a0d8b9522ec7907ac98fd.png

扫码关注我们

觉得不错点个在看呗

2020/07/22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值