日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux多个客户端如何通信_linux实现多个客户端通信进阶

發布時間:2025/3/20 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux多个客户端如何通信_linux实现多个客户端通信进阶 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2020.07.31

linux分享

#01#前言

前情回顧:

????在整理上學期資料同時將部分代碼分享,將以代碼書寫時間為時間線,按優化程度逐步發出,代碼均為在linux下c編程。

上回功能:

????由客戶端和服務端組成,可支持多個客戶端之間通信。

本次改進:

新增專線聊天,聊天室,三人聊天群,以及當有人登陸和退出時對全體進行廣播。

????功能說明:quit退出,list查看在線列表,make自由與任意好友聊天,zxlt停留在一個好友發送框里,但可以接收到所有人發你的消息,聊天室與三人聊天同理,一個是三個人的群,一個是大家的群,查看或請求幫助help。

本文分成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[128];

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、客戶端使用二個線程,一個接受來自其它客戶端的消息,一個接受來自服務器的消息,專線聊天則是在聊天基礎上加個while循環,聊天室相當于對全體的廣播,三人聊天群則是在專線聊天基礎上融合聊天室,支持向多人發送消息。

3、服務器定義有三種消息隊列數據類型,分別是登陸,退出,請求在線列表;在接受到請求在線列表后,會以請求者的pid為消息類型發送回去,同時有新的人登陸、退出時會向全部客戶端進行廣播。

#OVER#

#05#結尾->獲取方式

下載地址:

公眾號內回復【char3】即可獲取下載鏈接

#OVER#

點擊下方圖片進入linux討論區

視頻來源:科學大世界

文字:科學大世界

圖片:科學大世界

文章封面圖:網絡

如有侵權請到公眾號內意見反饋處反饋

???

掃碼關注我們

覺得不錯點個在看唄

2020/07/31

總結

以上是生活随笔為你收集整理的linux多个客户端如何通信_linux实现多个客户端通信进阶的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。