本文整理汇总了C++中socket_listen函数的典型用法代码示例。如果您正苦于以下问题:C++ socket_listen函数的具体用法?C++ socket_listen怎么用?C++ socket_listen使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了socket_listen函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: prctl
void *socket_http_listener()
{
prctl(PR_SET_NAME, (char *)"HTTP", 0, 0, 0);
while (1){
struct client_ctx *cc = socket_listen(&srv_http);
if (!cc)
continue;
struct lnode *n = calloc(sizeof(*n), 1);
queue_push(n, cc);
}
pthread_exit(0);
}
开发者ID:faissaloo,项目名称:wakaba,代码行数:15,代码来源:socket.c
示例2: meth_listen
/*-------------------------------------------------------------------------*\
* Puts the sockt in listen mode
\*-------------------------------------------------------------------------*/
static int meth_listen(lua_State *L)
{
p_tcp tcp = (p_tcp) auxiliar_checkclass(L, "tcp{master}", 1);
int backlog = (int) luaL_optnumber(L, 2, 32);
int err = socket_listen(&tcp->sock, backlog);
if (err != IO_DONE) {
lua_pushnil(L);
lua_pushstring(L, socket_strerror(err));
return 2;
}
/* turn master object into a server object */
auxiliar_setclass(L, "tcp{server}", 1);
lua_pushnumber(L, 1);
return 1;
}
开发者ID:beichentianyun,项目名称:luabuild,代码行数:18,代码来源:tcp.c
示例3: main
int main(){
lib_init();
socket_t * serverSocket = socket_new();
socket_bind(serverSocket, 5000);
socket_listen(serverSocket);
film_maker_t* film_makers[FILM_MAKERS_AMOUNT];
for (int i = 0; i < FILM_MAKERS_AMOUNT; i++) {
film_makers[i] = film_maker_new();
}
parse(film_makers,"XML_format.xml");
while(1) {
socket_t * clientSocket = socket_accept(serverSocket);
char buf[102400];
if(socket_read(clientSocket, buf, 102400) == 0) {
socket_close(clientSocket);
socket_free(clientSocket);
puts("Skipping empty request");
continue;
}
http_request_t req = http_request_parse(buf);
server_reply(clientSocket, req, film_makers);
//puts("fghj");
socket_close(clientSocket);
socket_free(clientSocket);
}
for (int i = 0; i < 3; i++)
film_maker_free(film_makers[i]);
socket_close(serverSocket);
socket_free(serverSocket);
lib_free();
return 0;
}
开发者ID:OlgaYashan,项目名称:-little-princess,代码行数:48,代码来源:main.c
示例4: ot_try_bind
static void ot_try_bind( char ip[4], uint16 port, int is_tcp ) {
int64 s = is_tcp ? socket_tcp4( ) : socket_udp4();
if( socket_bind4_reuse( s, ip, port ) == -1 )
panic( "socket_bind4_reuse" );
if( is_tcp && ( socket_listen( s, SOMAXCONN) == -1 ) )
panic( "socket_listen" );
if( !io_fd( s ) )
panic( "io_fd" );
io_setcookie( s, is_tcp ? FLAG_TCP : FLAG_UDP );
io_wantread( s );
}
开发者ID:mchelen,项目名称:opentracker_ono,代码行数:16,代码来源:opentracker.c
示例5: ot_try_bind
static int64_t ot_try_bind( ot_ip6 ip, uint16_t port ) {
int64 sock = socket_tcp6( );
if( socket_bind6_reuse( sock, ip, port, 0 ) == -1 )
panic( "socket_bind6_reuse" );
if( socket_listen( sock, SOMAXCONN) == -1 )
panic( "socket_listen" );
if( !io_fd( sock ) )
panic( "io_fd" );
io_setcookie( sock, (void*)FLAG_SERVERSOCKET );
io_wantread( sock );
return sock;
}
开发者ID:Gastlag,项目名称:Opentracker,代码行数:16,代码来源:proxy.c
示例6: sctp_server_create
/**
* @brief sctp_server_create
*
* @param sck [in] socket impl
* @param ip [in] listen ip
* @param port [in] listen port
*
* @return 0, if succ; -1, if failed
*/
int sctp_server_create(struct socket_impl *sck, const char *ip, unsigned short port)
{
struct sctp_initmsg initmsg = {0};
struct sctp_event_subscribe event = {0};
if (sck == NULL || sck->fd > 0) return -1;
/* init impl */
memset(sck, 0, sizeof(*sck));
/* create, bind and listen socket */
if ((sck->fd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP)) < 0)
{
perror("sctp socket failed");
}
/* socket bind */
inet_addr_init(&sck->addr.in_addr, ip, port);
socket_bind(sck->fd, (struct sockaddr *)&sck->addr.addr);
/* init msg */
initmsg.sinit_num_ostreams = 5;
initmsg.sinit_max_instreams = 5;
initmsg.sinit_max_attempts = 4;
if (setsockopt(sck->fd, IPPROTO_SCTP, SCTP_INITMSG, &initmsg, sizeof(initmsg)) < 0)
perror("sctp setsockopt initmsg failed");
/* sctp event */
event.sctp_data_io_event = 1;
if (setsockopt(sck->fd, IPPROTO_SCTP, SCTP_EVENTS, &event, sizeof(event)) < 0)
perror("sctp setsockopt event failed");
/* socket listen */
socket_listen(sck->fd, 5);
/* set socket block */
make_socket_block(sck->fd);
/* create tcp server thread runtine */
if (pthread_create(&sck->ptd, NULL, tcp_server_backup_service, sck))
{
printf("sctp server create failed.\n");
return -1;
}
return 0;
}
开发者ID:antontest,项目名称:c,代码行数:56,代码来源:socket_app.c
示例7: server_init
void server_init (unsigned port)
{
unsigned sock;
client_t client;
_server_port = port;
for (sock = 0; sock < MAX_SOCK_NUM; sock++) {
client_init_sock (&client, sock);
if (client_status (&client) == SnSR_CLOSED) {
socket_init (sock, SnMR_TCP, port, 0);
socket_listen (sock);
_socket_port[sock] = port;
break;
}
}
}
开发者ID:denrusio,项目名称:vak-opensource,代码行数:17,代码来源:server.c
示例8: nbt_refresh_own
/*
test that a server responds correctly to attempted name refresh requests
*/
static bool nbt_refresh_own(struct torture_context *tctx)
{
struct nbt_name_refresh io;
NTSTATUS status;
struct nbt_name_socket *nbtsock = nbt_name_socket_init(tctx, NULL);
const char *myaddress;
struct socket_address *socket_address;
struct nbt_name name;
const char *address;
if (!torture_nbt_get_name(tctx, &name, &address))
return false;
myaddress = iface_best_ip(address);
socket_address = socket_address_from_strings(tctx, nbtsock->sock->backend_name,
myaddress, 0);
torture_assert(tctx, socket_address != NULL,
"Can't parse socket address");
status = socket_listen(nbtsock->sock, socket_address, 0, 0);
torture_assert_ntstatus_ok(tctx, status,
"socket_listen for nbt_referesh_own failed");
torture_comment(tctx, "Testing name defense to name refresh\n");
io.in.name = name;
io.in.dest_addr = address;
io.in.address = myaddress;
io.in.nb_flags = NBT_NODE_B | NBT_NM_ACTIVE;
io.in.broadcast = False;
io.in.ttl = 1234;
io.in.timeout = 3;
io.in.retries = 0;
status = nbt_name_refresh(nbtsock, tctx, &io);
torture_assert_ntstatus_ok(tctx, status,
talloc_asprintf(tctx, "Bad response from %s for name refresh", address));
CHECK_STRING(tctx, io.out.name.name, name.name);
CHECK_VALUE(tctx, io.out.name.type, name.type);
CHECK_VALUE(tctx, io.out.rcode, NBT_RCODE_ACT);
return true;
}
开发者ID:Marvin-Lee,项目名称:libwmiclient,代码行数:49,代码来源:register.c
示例9: nettest5
int nettest5(void)
{
int err;
sockaddr addr;
int new_fd;
fd = socket_create(SOCK_PROTO_TCP, 0);
printf("created socket, fd %d\n", fd);
if(fd < 0)
return 0;
memset(&addr, 0, sizeof(addr));
addr.addr.len = 4;
addr.addr.type = ADDR_TYPE_IP;
addr.port = 1900;
NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(0,0,0,0);
err = socket_bind(fd, &addr);
printf("socket_bind returns %d\n", err);
if(err < 0)
return 0;
err = socket_listen(fd);
printf("socket_listen returns %d\n", err);
if(err < 0)
return 0;
new_fd = socket_accept(fd, &addr);
printf("socket_accept returns %d\n", new_fd);
if(new_fd < 0)
return 0;
err = socket_write(new_fd, "hello world!\n", strlen("hello world!\n"));
printf("socket_write returns %d\n", err);
printf("sleeping for 5 seconds\n");
usleep(5000000);
printf("closing fd %d\n", new_fd);
socket_close(new_fd);
printf("closing fd %d\n", fd);
socket_close(fd);
return 0;
}
开发者ID:HTshandou,项目名称:newos,代码行数:45,代码来源:main.c
示例10: f_socket_listen
void
f_socket_listen (void)
{
int i, fd, port;
char addr[ADDR_BUF_SIZE];
fd = (sp - 1)->u.number;
get_socket_address(fd, addr, &port, 0);
if (VALID_SOCKET("listen")) {
i = socket_listen(fd, sp);
pop_stack();
sp->u.number = i;
} else {
pop_stack();
sp->u.number = EESECURITY;
}
}
开发者ID:Yuffster,项目名称:fluffOS,代码行数:18,代码来源:sockets.c
示例11: listen_thread
static void
listen_thread(void* arg)
{
struct nr_mgr* mgr = (struct nr_mgr*)arg;
sock client_fd = SOCKET_ERROR;
struct sockaddr_in socketaddress;
socklen_t size = sizeof(struct sockaddr);
sock listen_fd = socket_listen(4002, 25);
int total_num = 0;
if(SOCKET_ERROR != listen_fd)
{
for(;;)
{
while((client_fd = accept(listen_fd, (struct sockaddr*)&socketaddress, &size)) < 0)
{
if(EINTR == sErrno)
{
continue;
}
}
if(SOCKET_ERROR != client_fd)
{
total_num++;
//printf("accept %d, current total num : %d\n", client_fd, total_num);
nrmgr_addfd(mgr, client_fd);
}
}
socket_close(listen_fd);
listen_fd = SOCKET_ERROR;
}
else
{
//printf("listen failed\n");
}
printf("exit\n");
exit(0);
}
开发者ID:GodZza,项目名称:accumulation-dev,代码行数:44,代码来源:main.c
示例12: main
int main() {
lib_init();
list_t* list=list_new();
lanser * freeLanser[10];
for (int i = 0; i < 10; i++)
freeLanser[i] = Freelanser_new();
// parse(freeLanser);
socket_t * serverSocket = socket_new();
socket_bind(serverSocket, 5000);
socket_listen(serverSocket);
while (1) {
socket_t * clientSocket = socket_accept(serverSocket);
char buf[10000]="";
if (!socket_read(clientSocket, buf, sizeof(buf))) {
puts("Skipping empty request");
socket_close(clientSocket);
socket_free(clientSocket);
continue;
}
http_request_t req = http_request_parse(buf);
server_answer(list,req,clientSocket,freeLanser);
socket_close(clientSocket);
socket_free(clientSocket);
}
socket_close(serverSocket);
socket_free(serverSocket);
lib_free();
list_free(list);
return 0;
}
开发者ID:vitalik296,项目名称:CoursesRepo,代码行数:44,代码来源:main.c
示例13: startup_local_server
/**
* @brief start up a local server socket
*
* @param domain [in] This value can be AF_INET,AF_UNIX,AF_LOCAL,
* PF_INET, PF_UINX and PF_LOCAL.
* @param type [in] can be SOCK_TREAM, SOCK_DGRAM.
* @param path [in] socket file path
* @param is_ser [in] srever or client
*
* @return socket fd, if succ; exit, if fail
*/
int startup_local_server(int type, const char *path)
{
int fd = -1;
struct sockaddr_un addr = {0};
/* init sockaddr_in */
local_addr_init(&addr, path);
/* create socket */
fd = socket_create(AF_UNIX, type);
make_listen_socket_reuseable(fd);
unlink(addr.sun_path);
/* bind and listen socket */
socket_bind(fd, (struct sockaddr *)&addr);
if (type == SOCK_STREAM) socket_listen(fd, 5);
return fd;
}
开发者ID:antontest,项目名称:c,代码行数:30,代码来源:socket_base.c
示例14: init_socket
static int init_socket(t_socket *sock, int port)
{
if (socket_ctor(sock, AF_INET, SOCK_STREAM, 0) == RET_FAILURE)
{
perror("error: socket creation");
return (RET_FAILURE);
}
if (socket_bind(sock, INADDR_ANY, port))
{
perror("error: socket bind");
return (RET_FAILURE);
}
if (socket_listen(sock, 42) == RET_FAILURE)
{
perror("error: socket listen");
return (RET_FAILURE);
}
return (RET_SUCCESS);
}
开发者ID:Raphy,项目名称:irc,代码行数:19,代码来源:srv_ctor.c
示例15: server
/**
* Writes the received payload into payload argument and returns the tag of the message
*/
unsigned char server(unsigned char * payload)
{
ulong msg_len = PAYLOAD_LEN + 1;
unsigned char* msg = malloc(msg_len);
// receive the message
BIO * b = socket_listen();
recv(b, msg, msg_len);
// wait for the client to close, to avoid "Address already in use" errors
wait_close(b);
unsigned char * pad = otp(msg_len); // apply the one-time pad
xor(msg, pad, msg_len);
// get the payload
memcpy(payload, msg + 1, PAYLOAD_LEN);
// return the tag
return *msg;
}
开发者ID:tari3x,项目名称:csec-modex,代码行数:23,代码来源:server.c
示例16: Listen
static socket_t Listen(int port)
{
int r;
socket_t server;
server = socket_tcp();
if(socket_error == server)
return socket_invalid;
// reuse addr
r = socket_setreuseaddr(server, 1);
// bind
r = socket_bind_any(server, (unsigned short)port);
// listen
r = socket_listen(server, 64);
return server;
}
开发者ID:ireader,项目名称:sdk,代码行数:20,代码来源:main.c
示例17: main
int main() {
lib_init();
socket_t * server = socket_new();
socket_bind(server, 5000);
socket_listen(server);
char buf[10000];
char pathBuf[256];
socket_t * client = NULL;
while(1) {
client = socket_accept(server);
socket_read(client, buf, sizeof(buf));
if (strlen(buf) == 0)
continue;
printf(">> Got request:\n%s\n", buf);
http_getPath(buf, pathBuf, sizeof(pathBuf));
http_request_t request = http_request_parse(buf);
if (strcmp(request.uri, "/") == 0) {
server_homepage(client);
} else if (strcmp(request.uri, "/database") == 0) {
server_students(client, &request);
}
else if (strcmp(request.uri, "/info") == 0) {
server_info(client);
}
else if (strcmp(request.uri, "/filename") == 0) {
server_file_parse(client);
}
else {
server_notFound(client);
}
socket_free(client);
}
socket_free(server);
lib_free();
return 0;
}
开发者ID:samokhvalenko,项目名称:samokh-52,代码行数:41,代码来源:main.c
示例18: startup_inet_server
/**
* @brief start up a internet server socket
*
* @param domain [in] This value can be AF_INET,AF_UNIX,AF_LOCAL,
* PF_INET, PF_UINX and PF_LOCAL.
* @param type [in] can be SOCK_TREAM, SOCK_DGRAM.
* @param ip [in] ip address, can be NULL
* @param port [in] socket port
*
* @return socket fd, if succ; exit, if fail
*/
int startup_inet_server(int type, const char *ip, \
u_short port)
{
int fd = -1;
struct sockaddr_in addr = {0};
/* create socket */
fd = socket_create(AF_INET, type);
make_listen_socket_reuseable(fd);
/* init sockaddr_in */
inet_addr_init(&addr, ip, port);
/* bind socket */
socket_bind(fd, (struct sockaddr *)&addr);
/* build socket listen */
if (type == SOCK_STREAM) socket_listen(fd, 5);
return fd;
}
开发者ID:antontest,项目名称:c,代码行数:32,代码来源:socket_base.c
示例19: qio_channel_socket_listen_sync
int qio_channel_socket_listen_sync(QIOChannelSocket *ioc,
SocketAddress *addr,
Error **errp)
{
int fd;
trace_qio_channel_socket_listen_sync(ioc, addr);
fd = socket_listen(addr, errp);
if (fd < 0) {
trace_qio_channel_socket_listen_fail(ioc);
return -1;
}
trace_qio_channel_socket_listen_complete(ioc, fd);
if (qio_channel_socket_set_fd(ioc, fd, errp) < 0) {
close(fd);
return -1;
}
return 0;
}
开发者ID:01org,项目名称:qemu-lite,代码行数:21,代码来源:channel-socket.c
示例20: StartServer
void StartServer(){
int sockstat, listsock;
listsock = socket_create(STREAM,"read_callback","close_callback");
if(listsock < 0){
debug("Couldn't create socket. errorcode: "+listsock);
return;
}
sockstat = socket_bind(listsock,port);
if(sockstat < 0){
debug("Couldn't bind socket. errorcode: "+sockstat);
return;
}
sockstat = socket_listen(listsock,"listen_callback");
if(sockstat < 0){
debug("Couldn't listen on socket. errorcode: "+sockstat);
return;
}
}
开发者ID:Elohim,项目名称:FGmud,代码行数:22,代码来源:echo_server.c
注:本文中的socket_listen函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论