Jan Breuer
2023-01-16 97a4bf6d10aa038110e68b5a22e9a5f5bf9ffc35
Merge pull request #133 from folkertvanheusden/tcp

see issue #131 (problem talking to sigrok over tcp)
1个文件已修改
18 ■■■■ 已修改文件
examples/test-tcp/main.c 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
examples/test-tcp/main.c
@@ -45,22 +45,30 @@
#include <errno.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netinet/tcp.h>
#include "scpi/scpi.h"
#include "../common/scpi-def.h"
size_t SCPI_Write(scpi_t * context, const char * data, size_t len) {
    (void) context;
    if (context->user_context != NULL) {
        int fd = *(int *) (context->user_context);
        int state = 1;
        setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state));
        return write(fd, data, len);
    }
    return 0;
}
scpi_result_t SCPI_Flush(scpi_t * context) {
    (void) context;
    if (context->user_context != NULL) {
        int fd = *(int *) (context->user_context);
        int state = 0;
        setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state));
    }
    return SCPI_RES_OK;
}
@@ -193,7 +201,7 @@
    listenfd = createServer(5025);
    while (1) {
        int clifd;
        int clifd, flag = 1;
        struct sockaddr_in cliaddr;
        socklen_t clilen;
@@ -202,6 +210,8 @@
        if (clifd < 0) continue;
    setsockopt(clifd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
        printf("Connection established %s\r\n", inet_ntoa(cliaddr.sin_addr));
        scpi_context.user_context = &clifd;