如果您的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或任何可用的接口名称.选择有点严峻:
我有一个包含图像的文件夹,其中还有一个包含图像的子文件夹.我需要生成一个精灵,而不是现在发生的两个精灵,我还想根据文件夹/子文件夹控制生成的类:
@import "mobile/*.png";
@import "mobile/icons/*.png";
Run Code Online (Sandbox Code Playgroud)
如何让指南针生成一个精灵?
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) 一个真正基本的表,包含利用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)
每当我在所有交易所查询最优价格时,它总是使用临时表.索引的存在exchange和price索引只会产生索引扫描,等同(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) 我是套接字编程和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)