Wayland入门教程09.01:服务端

系列索引地址:Wayland入门系列教程索引

上一篇:Wayland入门教程09:进阶

本文介绍如何自己写服务端。

server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h>
#include<stdlib.h>
#include<wayland-util.h>
#include<wayland-server.h>

// Creating a wayland server
int main(int argc, char* argv[]){
// Get the display of the server
struct wl_display *display = wl_display_create();
if(!display){
fprintf(stderr, "Unable to create a Wayland display\n");
return 1;
}

// Create a socket to connect with it
const char *socket = wl_display_add_socket_auto(display);
if(!socket){
fprintf(stderr, "Unable to add socket to Wayland display\n");
return 1;
}

// Get event loop
struct wl_event_loop *event = wl_display_get_event_loop(display);

// Run wayland server
fprintf(stderr, "Running Wayland display on %s\n", socket);
wl_display_run(display);


// Destroy display
wl_display_destroy(display);
wl_display_destroy_clients(display);
return 0;
}

client

客户端部分使用Wayland入门教程08.05:连接server的代码。

测试

在两个tty中分别运行软件。

服务端

1
2
hyper@wayland:~/sc$ ./server
Running Wayland display on wayland-0

因为服务端有个死循环,所以要新开一个tty运行客户端

1
2
hyper@wayland:~/sc$ ./client
Connection established!

完整代码在Wayland_Freshman下的09.01.simple_server中。

下一篇:Wayland入门教程09.02:简单桌面(基于wlroots)


Wayland入门教程09.01:服务端
https://blog.jackeylea.com/wayland/simple-wayland-server-and-client/
作者
JackeyLea
发布于
2024年1月31日
许可协议