



2020.07.22
linux分享
●
●
●
#01#前言


前言:
在整理上学期资料同时将部分代码分享,将以代码书写时间为时间线,按优化程度逐步发出,代码均为在linux下c编程。
本次内容:
由客户端和服务端组成,可支持多个客户端之间通信
本文分成4部分:
1、图片演示
2、代码截图
3、思路说明
4、下载地址
#OVER#

#02#图片演示

#OVER#

#03#代码截图

头文件: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#

#04#思路说明
思路说明
1、服务器维护一个在线列表,记录登录客户端的pid和用户名,以pid作为客户端之间的通信类型
2、客户端使用线程接受来自其它客户端的消息
3、服务器定义有三种消息队列数据类型,分别是登录,退出,请求在线列表;在接受到请求在线列表后,会以请求者的pid为消息类型发送回去。
#OVER#



#05#结尾->获取方式

下载地址:
公众号内回复【char2】即可获取下载链接
#OVER#
点击下方图片进入linux讨论区

●
●
●
视频来源:科学大世界
文字:科学大世界
图片:科学大世界
文章封面图:网络
如有侵权请到公众号内意见反馈处反馈
???

扫码关注我们
觉得不错点个在看呗
2020/07/22