Я пытаюсь использовать libuv для отправки некоторых данных.Клиент подключается к серверу, сервер принимает соединение, затем клиент пытается записать, используя uv_write (вывод printf, так что я знаю, что это далеко).В результате получается
uv_write2: Assertion `(stream->type == UV_TCP || stream->type == UV_NAMED_PIPE || stream->type == UV_TTY) && "uv_write (unix) does not yet support other types of streams"' failed.
Что заставляет меня думать, что поток не должен быть инициализирован.Код ниже, что я делаю не так?
void OnConnectToServer(uv_connect_t *client, int status)
{
if (status < 0)
{
return;
}
printf( "Client attempt write\n" );
write_req_t *req = (write_req_t*) malloc(sizeof(write_req_t));
req->buf = uv_buf_init( (char*) malloc(1), 1 );
(req->buf.base)[0] = '0';
uv_write((uv_write_t*) req, client->handle, &req->buf, 1, OnWrite);
}
void SendData( uv_async_t*sd )
{
uv_tcp_t client;
uv_tcp_init(loop, &client);
uv_connect_t* connect = (uv_connect_t*)malloc(sizeof(uv_connect_t));
struct sockaddr_in dest;
uv_ip4_addr("192.168.20.3", PORT, &dest);
uv_tcp_connect(connect, &client, (const struct sockaddr*)&dest, OnConnectToServer);
}