XWayland开发入门系列7:连接server

系列索引地址:X11/Wayland开发入门系列教程索引

上一篇:XWayland开发入门系列6:hello world

根据架构可知,(鼠标、窗口、键盘)操作在客户端,操作完成之后通过socket发送给服务端,那么第一步就是连接服务端。

先来测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <wayland-client.h>
#include <iostream>

using namespace std;

int main() {
wl_display *display = wl_display_connect(0);

if (!display) {
std::cout << "Unable to connect to wayland compositor" << std::endl;
return -1;
}

wl_display_disconnect(display);

return 0;
}

代码很简单,就是

  • 连接
  • 判断连接是否成功
  • 关闭连接

编译

1
2
all:
g++ -o connect connect.cpp -lwayland-client

终端执行

1
make

编译生成程序,执行

1
./connect

没有如何回应(那就对了,Linux没有回应就是最好的回应)。

但是这对于开发者来说不过友好,因为我不知道这中间有没有什么错误。

所以我们需要一个外部工具来查看信息,就是前面提到的wldbg

执行命令

1
2
hyper@ubuntu:~/Desktop$ wldbg -s
Listening for incoming connections...

可以看到wldbg在等待连接

我们再次执行测试程序

1
./connect

可以看到wldbg立刻停止了运行(连接成功,但是并没有执行什么东西)。

至此第一步算是成功了。

完整代码在Wayland_Frashman下的7.connect中。

下一篇:XWayland开发入门系列8:获取全局对象