写一个使用gsocket发送tcp数据的例子,要有错误处理
时间: 2024-04-07 07:31:28 浏览: 25
好的,以下是一个使用gsocket发送TCP数据的例子,同时包含错误处理:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <gsocket.h>
#define BUF_SIZE 1024
int main(int argc, char *argv[]) {
if (argc != 3) {
fprintf(stderr, "Usage: %s <host> <port>\n", argv[0]);
return 1;
}
const char *host = argv[1];
const char *port = argv[2];
// 创建socket
gsocket_t *sock = gsocket_new(GS_TCP);
if (sock == NULL) {
fprintf(stderr, "Failed to create socket: %s\n", strerror(errno));
return 1;
}
// 连接服务器
int ret = gsocket_connect(sock, host, port);
if (ret != 0) {
fprintf(stderr, "Failed to connect to %s:%s: %s\n", host, port, strerror(errno));
gsocket_free(sock);
return 1;
}
// 发送数据
char buf[BUF_SIZE];
strcpy(buf, "Hello, world!");
size_t len = strlen(buf);
ret = gsocket_send(sock, buf, len);
if (ret == -1) {
fprintf(stderr, "Failed to send data: %s\n", strerror(errno));
gsocket_free(sock);
return 1;
} else if (ret != len) {
fprintf(stderr, "Failed to send all data: %zd/%zd\n", ret, len);
gsocket_free(sock);
return 1;
}
// 关闭socket
gsocket_close(sock);
gsocket_free(sock);
return 0;
}
```
在上述代码中,我们首先使用 `gsocket_new()` 函数创建了一个TCP socket,然后使用 `gsocket_connect()` 函数连接到指定的服务器。如果连接失败,我们会输出错误信息并退出程序。
接着,我们使用 `gsocket_send()` 函数发送数据。如果发送失败,我们同样会输出错误信息并退出程序。
最后,我们使用 `gsocket_close()` 函数关闭socket,并使用 `gsocket_free()` 函数释放内存。
注意,这只是一个简单的例子,实际应用中需要根据具体情况进行错误处理和异常处理。