linux下可以直接拿来使用,用第一个示例就好了。

注意 struct ifreq 头文件如下: struct ifreq header file

#include <sys/ioctl.h>
#include <net/if.h>

这是代码的方法,肯定也有指定路由的办法。有兴趣的话可以了解一下。大致思路就是使用

route add ...
  1. example(TCP, UDP, RAW):

    int sock;
    struct ifreq ifr;
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    memset(&ifr, 0x00, sizeof(ifr));
    strncpy(ifr.ifr_name, "eth0", IFNAMSIZE);
    setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, (char *)&ifr, sizeof(ifr));
    
  2. example(PACKET):

    int sock;
    struct sockaddr_ll sl;
    struct ifreq ifr;
    sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_IPV6));
    memset(&sl, 0x00, sizeof(sl));
    memset(&ifr, 0x00, sizeof(ifr));
    sl.sll_family = AF_PACKET;
    sl.sll_protocol = htons(ETH_P_IPV6);
    strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));
    ioctl(fd, SIOCGIFINDEX, &ifr);
    sl.sll_ifindex = ifr.ifr_ifindex;
    bind(fd, (struct sockaddr *)&sl, sizeof(sl));
    
  3. example(PACKET):

    int sock;
    struct sockaddr addr;
    sock = socket(PF_PACKET, SOCK_PACKET, ETH_P_IP);
    memset(&addr, 0x00, sizeof(addr));
    addr.sa_family = PF_PACKET;
    strncpy(addr.sa_data, "eth0", sizeof(addr.sa_data));
    bind(sock, &addr, sizeof(addr));
    

SO_BINDTODEVICE套接口选项说明:
SO_BINDTODEVICE
Bind  this  socket  to  a particular device like “eth0”, as specified in the passed interface name.  If the name is an empty string or the option length is zero, the socket device binding  is  removed.   The  passed option  is a variable-length null-terminated interface name string with the maximum size of IFNAMSIZ.  If a socket is bound to an interface, only packets received from that particular interface are processed by  the socket.  Note  that  this  only works for some socket types, particularly AF_INET sockets.  It is not supported for packet sockets (use normal bind(8) there).
Referenced from:https://blog.csdn.net/networkangle/article/details/52549758?tdsourcetag=s_pcqq_aiomsg

国家标准. 道路交通标志和标线. 第2部分:道路交通标志. GB 5768.2-2009. 中国标准出版社出版发行. 北京复兴门外三里河北街16号. 邮政编码:100045

http://cdjg.chengdu.gov.cn/cdjg/c113997//2020-07/17/c070a56114554083839b110a7804e39d/files/0f6fb5be41904e239585d3982d6b2217.pdf
国家标准《道路交通标志和标线 第2部分:道路交通标志》由348(交通运输部)归口上报及执行,主管部门为交通运输部。

主要起草单位 交通部公路科学研究院 。

主要起草人 何勇 、姜明 、高海龙等 。

道路交通标志和标线 第2部分:道路交通标志
Road traffic signs and markings - Part 2: Road traffic signs

中文标准名称:道路交通信息服务交通事件分类与编码.
英文标准名称:Road traffic information service - Traffic event classification and coding.

GBT 29100-2012 道路交通信息服务 交通事件分类与编码.pdf

这个在网上好像没有看到pdf版本。

标准号GB/T 29100-2012
发布日期2012-12-31
实施日期2013-07-01
中国标准分类号R07
国际标准分类号35.240.60
归口单位全国智能运输系统标准化技术委员会
执行单位全国智能运输系统标准化技术委员会
主管部门国家标准化管理委员会
标准类型推荐性国家标准

c++ udp send big packet

UDP datagram 大小限制 65,535 bytes

测试socket udp 单次传输数据上限(sendto()函数data不能超过65507字节。udp头占8字节,ip头占20字节,加起来正好65535字节)

void udp_test()
{
    char *p = new char[65507];
    string strsend;
    strsend.assign(p, 65507);
    int ret = udp_send("127.0.0.1", 8888, strsend);
    printf("udp_send ret=%d\n", ret);
    delete[] p;
}

udp_send ip=127.0.0.1,port=8888
send buffer size = 163840
sendto ret = 65507
udp_send ret=65507

void udp_test()
{
    char *p = new char[65508];
    string strsend;
    strsend.assign(p, 65508);
    int ret = udp_send("127.0.0.1", 8888, strsend);
    printf("udp_send ret=%d\n", ret);
    delete[] p;
}

udp_send ip=127.0.0.1,port=8888
send buffer size = 163840
sendto ret = -1
udp_send ret=-1

UDP仅提供数据报作为IP数据包的数据部分,IP数据包具有16位长度的字段,因此将数据限制为2 ^ 16字节(包括标题),或UDP数据部分的65507字节(假设没有ipv4选项) ,除了用UDP处理更大的数据包外,除了将它们分成几个数据包并自行处理重组等之外,没有其他方法。

UDP规范在UDP报头中为您提供16位的数据包大小,这意味着您一次发送的字节数不能超过65k。您必须将数据拆分为多个数据包。使用TCP代替UDP将使事情变得更加简单,因为可以确保完整性和接收顺序。

中国电信0728.HK周五发布招股意向书,将A股首次公开发行(IPO)拟发行股数上限设定在103.96亿股,较此前120.93亿股的发行上限有所下降,网上申购日期为8月9日。

招股意向书保留了授权主承销商超额发售不超过本次发行A股股数(超额配售选择权行使前)15%
A股股份条款,与此前计划相同。募集资金用途仍为5G产业互联网建设项目、云网融合新型信息基础设施项目、科技创新研发项目。

中国三大电信商中的中国联通600050.SS早已在A股上市,最大移动通讯服务商--中国移动0941.HK5月亦宣布,拟申请在上海证券交易所发行股份并上市,拟公开发行人民币股份数量至多9.65亿股,至此,中国三大电信运营商有望齐聚A股。

本月稍早,中国电信发布公告预计,1-6月净利润约为175.76-178.55亿元人民币,同比增约26-28%。

Referenced from:https://cn.reuters.com/article/china-telecom-ashare-ipo-0730-idCNKBS2F003W?il=0

中国电信股份有限公司 (China Telecom Co., 0728.HK,
简称:中国电信)将在上海发售价值数十亿美元股票,这家电信运营商正转向国内市场筹集资金。

该公司在周五的一份招股说明书中称,将发行不超过104亿股股票。根据该股周四的H股收盘价,这意味着此次发行规模将接近41.6亿美元。

这家国有公司称,计划将发行所募集资金用于5G产业互联网建设项目和云基础设施项目。

中国电信计划的初步询价时间为8月3日和8月4日,申购时间为8月9日。该公司将在发行后尽快申请上市。

...
Referenced from:https://cn.wsj.com/articles/%25E4%25B8%25AD%25E5%259B%25BD%25E7%2594%25B5%25E4%25BF%25A1%25E8%25AE%25A1%25E5%2588%2592%25E5%259C%25A8%25E4%25B8%258A%25E6%25B5%25B7%25E4%25B8%258A%25E5%25B8%2582-11627609568

7月29日晚间,中国证监会公告,近日,证监会按法定程序核准了以下企业的首发申请:中国电信股份有限公司。上述企业及其承销商将与交易所协商确定发行日程,并刊登招股文件。将在上交所主板上市。

  这意味着,中国电信的IPO发行在即,可能在近期启动发行。中国电信的H股自今年年底底部以来涨幅已超80%,目前总市值为2517亿港元,而公司去年底的净资产已经3600多亿元人民币。

  本次IPO拟公开发行不超120.93亿股(行使超额配售权之前)根据未来三年利用募集资金投资金额544亿元作为拟募集资金量的话,中国电信将成为2010年农业银行(2.940,
-0.01, -0.34%)以来最大的IPO。

  中国电信将成为中国联通(4.130, 0.01,
0.24%)之后,第二家登陆A股的运营商,未来中国移动在A股IPO后,3家运营商将齐聚A股。

Referenced from:https://finance.sina.com.cn/stock/s/2021-07-30/doc-ikqciyzk8399135.shtml

公告显示,截至本招股意向书签署日,电信集团持有公司57.38亿股内资股股份,占公司总股本的70.89%,为公司控股股东。国务院国资委为公司实际控制人。在不考虑本次发行的超额配售选择权影响,发行后电信集团将持股62.82%。如果全额行使本次发行的超额配售选择权,发行后电信集团持股比例为61.77%。

业绩方面,2021年第一季度,中国电信实现营业收入1063.17亿元,较上年同期增长12.68%;归属于母公司股东的净利润64.41亿元,较上年同期增长10.63%。二季报预告显示,2021年1-6月,中国电信营业收入约为2136.06亿元至2184.17亿元,同比增长幅度约为11%至13.5%;归属于母公司股东的净利润约为175.76亿元至178.55亿元,同比增长幅度约为26%至28%。

用户方面,截至2021年3月末,中国电信移动用户数3.56亿户,比2020年末增加523万户。此外,中国电信5G套餐用户达1.11亿户,5G套餐用户净增2473万户。

Referenced from:https://www.sohu.com/a/480357783_561670