据架构可知,(鼠标、窗口、键盘)操作在客户端,操作完成之后通过socket发送给服务端,那么第一步就是连接服务端。
先来测试代码:
#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;
}
代码很简单,就是
- 连接
- 判断连接是否成功
- 关闭连接
编译
all:
g++ -o connect connect.cpp -lwayland-client
终端执行
make
编译生成程序,执行
./connect
没有如何回应(那就对了,Linux下没有回应就是最好的回应)。
但是这对于开发者来说不过友好,因为我不知道这中间有没有什么错误。
所以我们需要一个外部工具来查看信息,就是前面提到的wldbg
执行命令
hyper@ubuntu:~/Desktop$ wldbg -s
Listening for incoming connections...
可以看到wldbg在等待连接
我们再次执行测试程序
./connect
可以看到wldbg立刻停止了运行(连接成功,但是并没有执行什么东西)。
至此第一步算是成功了。
完整代码在Wayland_Frashman下的7.connect中。
本文首发于:XWayland入门7:连接server