服务端:监听本地1000多个端口;收到连接既接受并打印数据和客户端服务端socket;
github
#include <stdio.h>
#include <stdlib.h>
#include "include/uv.h"
#define DEFAULT_BACKLOG 1000
#define NUM 1000/*1013*/
uv_loop_t *loop;
struct sockaddr_in addr[NUM];
struct sockaddr_in addrCli;
uv_tcp_t server[NUM];
void alloc_buffer(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf) {
buf->base = (char*) malloc(suggested_size);
buf->len = suggested_size;
}
void echo_write(uv_write_t *req, int status) {
if (status) {
fprintf(stderr, "Write error %s\n", uv_strerror(status));
}
free(req);
}
void echo_read(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf)
{
if (nread < 0)
{
if (nread != UV_EOF)
printf("Read error %s\n",nread);
uv_close((uv_handle_t*) client, NULL);
return;
}
else if (nread > 0)
{
/*uv_write_t *req = (uv_write_t *) malloc(sizeof(uv_write_t));
uv_buf_t wrbuf = uv_buf_init(buf->base, nread);
uv_write(req, client, &wrbuf, 1, echo_write);*/
}
struct sockaddr addrlo1;
struct sockaddr_in addrin1;
int addrlen1 = sizeof(addrlo1);
char sockname1[1