日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/20 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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实现多个客户端通信进阶的全部內容,希望文章能夠幫你解決所遇到的問題。

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