Do You have link to example, how to create the client to echo-server? I need to use libevent, bufervents. This code have connect, but don't write to server:
int main() {
struct event_base *base;
struct evbuffer* ev_buffer;
const char hostname[] = "localhost";
struct sockaddr_in sin;
struct hostent *h;
int port = 5555;
const char *cp;
int fd;
ssize_t n_written, remaining;
char buf[BUFERSIZE];
h = gethostbyname(hostname);
if (!h) {
fprintf(stderr, "Couldn't lookup %s: %s", hostname, hstrerror(h_errno));
return ERR;
}
if (h->h_addrtype != AF_INET) {
fprintf(stderr, "No ipv4 support, sorry.");
return ERR;
}
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr = *(struct in_addr*)h->h_addr;
base = event_base_new();
struct bufferevent *bev_cnn = bufferevent_socket_new(base, -1, BEV_OPT_CLOSE_ON_FREE);
bufferevent_setcb(bev_cnn, NULL, NULL, event_callback, NULL);
int res = bufferevent_socket_connect(bev_cnn, &sin, sizeof(sin));
if ((ev_buffer = evbuffer_new()) == NULL) {
printf("proxy output buffer allocation failed");
}
event_base_dispatch( base );
bufferevent_enable(backend[0].buf_ev, EV_READ|EV_WRITE);
struct evbuffer *proxy_output = bufferevent_get_output(buf_ev);
size_t bufsize = evbuffer_get_length(proxy_output);
res = evbuffer_add(buf_ev, "test\r\n", 6);
if (bufferevent_write_buffer(bev_cnn, proxy_output)) {
printf("Error sending data to backend ****\n");
}
int nbytes = evbuffer_remove(backend[0].buf_ev, buf, BUFERSIZE);
bufferevent_disable(backend[0].buf_ev, EV_READ|EV_WRITE);
return OK;
}
When I have error? How can I create the Tcp client ?