小编Ste*_*e-o的帖子

标识适配器的首选IPv6源地址

如果您的IPv6主机具有多个全局范围地址,那么如何以编程方式识别首选地址bind()

示例地址列表:

eth0      Link encap:Ethernet  HWaddr 00:14:5e:bd:6d:da  
          inet addr:10.6.28.31  Bcast:10.6.28.255  Mask:255.255.255.0
          inet6 addr: 2002:dce8:d28e:0:214:5eff:febd:6dda/64 Scope:Global
          inet6 addr: fe80::214:5eff:febd:6dda/64 Scope:Link
          inet6 addr: 2002:dce8:d28e::31/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Run Code Online (Sandbox Code Playgroud)

在Solaris上,您可以使用接口标志指示首选地址,并通过SIOCGLIFCONF以下方式以编程方式提供:

/usr/include/net/if.h:
#define   IFF_PREFERRED   0x0400000000    /* Prefer as source address */
Run Code Online (Sandbox Code Playgroud)

如界面列表中所列:

eri0: flags=2104841<UP,RUNNING,MULTICAST,DHCP,ROUTER,IPv6> mtu 1500 index 2
        inet6 fe80::203:baff:fe4e:6cc8/10 
eri0:1: flags=402100841<UP,RUNNING,MULTICAST,ROUTER,IPv6,PREFERRED> mtu 1500 index 2
        inet6 2002:dce8:d28e::36/64 
Run Code Online (Sandbox Code Playgroud)

但这不适用于OSX,Linux,FreeBSD或Windows.从管理员的角度看,基于UUID的适配器名称(取决于Windows版本)完全没用,因此Windows很容易发布.

对于Linux,本文详细介绍了如何更改"生命周期" 的参数preferred_lft,以便lft内核对选择过程进行加权.此设置不会出现在结果方便可行的SIOCGIFCONF或者getifaddrs()虽然.

所以我想结合eth0,eri0或任何可用的接口名称.选择有点严峻:

  1. 适配器名称解析为多个接口失败.我采用这种方法来处理多播传输( …

linux macos solaris ipv6

16
推荐指数
1
解决办法
2280
查看次数

如何使用Compass从许多文件夹生成一个精灵?

我有一个包含图像的文件夹,其中还有一个包含图像的子文件夹.我需要生成一个精灵,而不是现在发生的两个精灵,我还想根据文件夹/子文件夹控制生成的类:

@import "mobile/*.png";
@import "mobile/icons/*.png";
Run Code Online (Sandbox Code Playgroud)

如何让指南针生成一个精灵?

css sass compass-sass

11
推荐指数
1
解决办法
829
查看次数

如何在没有过滤器列表的情况下使用Locale :: acceptFromHttp?

locale_accept_from_http是ICU API的基本包装,uloc_acceptLanguageFromHTTP但PHP/PECL实现似乎存在根本缺陷,它使用系统整套语言环境而不是将列表作为参数?

例如,用户说HTTP_ACCEPT_LANGUAGE = zh-HK;q=0.2, fr,即用户阅读繁体中文或法文,更喜欢后者.例如,您有一个提供繁体中文和简体中文文章的新闻网站.使用API Locale::acceptFromHttp只会返回fr.

<?php
var_dump (Locale::acceptFromHttp ("zh-HK;q=0.2,fr"));
?>
Run Code Online (Sandbox Code Playgroud)

输出:

string(2) "fr"
Run Code Online (Sandbox Code Playgroud)

php localization icu

7
推荐指数
1
解决办法
1441
查看次数

GROUP BY WHERE范围AND const ref没有临时值

一个真正基本的表,包含利用TokuDB存储引擎的多个交换机上的工具的引号:

CREATE TABLE `quotes` (
  `ticker` char(4) NOT NULL,
  `timestamp` time(3) NOT NULL,
  `price` decimal(7,2) unsigned NOT NULL,
  `size` smallint(5) unsigned NOT NULL,
  `exchange` char(3) NOT NULL,
  KEY `best_price` (`ticker`,`timestamp`,`exchange`,`price`),
  KEY `best_size` (`exchange`,`ticker`,`price`,`timestamp`)
) ENGINE=TokuDB
Run Code Online (Sandbox Code Playgroud)

每当我在所有交易所查询最优价格时,它总是使用临时表.索引的存在exchangeprice索引只会产生索引扫描,等同(ticker, timestamp)于TokuDB中的聚簇键.

EXPLAIN SELECT max(price),exchange
FROM quotes
WHERE
  ticker="A" AND
  timestamp BETWEEN "15:15:22.328961" AND "15:17:22.328961"
GROUP BY exchange
ORDER BY NULL \G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: quotes
         type: range
possible_keys: best_price
          key: best_price
      key_len: …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb tokudb

6
推荐指数
1
解决办法
337
查看次数

Linux上的C套接字编程

我是套接字编程和linux的新手我可以找到一些关于套接字编程的代码我想用这个代码连接到打印机,这段代码使用的是gethostbyname函数,负责获取hostent我觉得一切都很好,除了我还没有主机名我只有一个IP地址(打印机),那么我应该使用什么功能通过IP连接到打印机?

这是代码

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h> 

void error(const char *msg)
{
perror(msg);
exit(0);
}

int main(int argc, char *argv[])
{
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;

char buffer[256];
if (argc < 3) {
   fprintf(stderr,"usage %s hostname port\n", argv[0]);
   exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) 
    error("ERROR opening socket");
server = gethostbyname(argv[1]);
if (server == NULL) {
    fprintf(stderr,"ERROR, …
Run Code Online (Sandbox Code Playgroud)

c sockets linux

1
推荐指数
1
解决办法
1531
查看次数

标签 统计

linux ×2

c ×1

compass-sass ×1

css ×1

icu ×1

ipv6 ×1

localization ×1

macos ×1

mariadb ×1

mysql ×1

php ×1

sass ×1

sockets ×1

solaris ×1

tokudb ×1