glib socket
时间: 2023-11-23 22:07:34 浏览: 65
Glib是一个用于C语言的通用库,它提供了许多常见的功能和数据结构,包括字符串处理、内存管理和线程支持等。在Glib中,socket是用于网络通信的一种抽象概念,它允许应用程序在网络上发送和接收数据。
Glib中的socket支持TCP和UDP协议,并提供了一组函数用于创建、连接、发送和接收数据等操作。它还提供了一些高级功能,如异步操作和多路复用等。
在使用Glib的socket时,你需要先创建一个socket对象,然后使用相应的函数进行连接、发送和接收数据等操作。以下是一个简单的示例代码:
```c
#include <glib.h>
#include <gio/gio.h>
int main() {
// 创建socket对象
GSocketClient *client = g_socket_client_new();
// 连接到服务器
GSocketConnection *connection = g_socket_client_connect_to_host(client, "127.0.0.1", 8080, NULL, NULL);
// 创建输入输出流
GInputStream *input_stream = g_io_stream_get_input_stream(G_IO_STREAM(connection));
GOutputStream *output_stream = g_io_stream_get_output_stream(G_IO_STREAM(connection));
// 发送数据
const gchar *data = "Hello, server!";
g_output_stream_write(output_stream, data, strlen(data), NULL, NULL);
// 接收数据
gchar buffer[1024];
g_input_stream_read(input_stream, buffer, sizeof(buffer), NULL, NULL);
// 打印接收到的数据
g_print("Received: %s\n", buffer);
// 关闭连接
g_socket_connection_close(connection, NULL);
return 0;
}
```
这是一个简单的客户端代码,它连接到本地的服务器并发送一条消息,然后等待服务器回复并打印出来。
阅读全文