Redian新闻
>
古德霸:协议确定了,请你确认
avatar
古德霸:协议确定了,请你确认# Programming - 葵花宝典
m*n
1
【 以下文字转载自 Visa 讨论区 】
发信人: mission (ddg), 信区: Visa
标 题: 寻旅伴: 2月13日北京到旧金山,UA888
发信站: BBS 未名空间站 (Mon Feb 6 16:54:59 2012, 美东)
我老婆和一岁的孩子坐2月13日下周一从北京到旧金山的航班UA888,
如果您或者您的亲戚朋友是同一班飞机,非常感谢您能联系我,在
旅途中能帮助他们一下。
如果您的父母或者老人亲戚朋友需要入关信息帮助,我老婆可以帮忙,
她懂英文。
非常感谢!
avatar
p*g
2
今天收到邮件说:理由不充分,请写明办理豁免的真实具体理由。打电话N边 都打不通
纽约服务留学。
理由如下:
我叫***,2014年毕业于****博士学位,毕业后没有在国内工作,很快收到了2019表格
,同年12月赴*****做博士后工作,主要负责****项目,由对方大学资助,眼下两年半
的合作即将结束,由于专业不同,我希望能继续的博士,或者申请其他学校的博士,这
样对我日后的学术研究将会大有裨益。故此,我开始考虑申请J1豁免。
同时,我的太太,****,她是国内普通大学的本科学历,她有意趁此机会攻
读她的研究生学历。故此,我决定申请J1豁免,望大使馆的工作人员给予帮助,在此不
胜感激!!
我的家庭深知祖国多年培养的不易,愿意用有效的知识和学习报效自己的祖
国!
可我觉得理由已经很清楚了,就是我们都想继续上学。为什么大使馆还认为不从分?
avatar
Z*i
3
李察笑笑说:“我不需要你守两月,守两周就可以了。”
艾莉婕皱眉问:“您打算怎么做?”
李察的手指移到神圣同盟军队的集结点,声音中已带上些许杀气:“我会先行击溃
这些‘老朋友’再掉过头来干掉千年帝国,最后,把圣树王朝的家伙们消灭在黑玫瑰古
堡下!”
简单的话,却不简单的战略,甚至可以称得上是疯狂。李察想一口气把三大帝国的
军队都吞了?
一名将军咽了口口水,迟疑地问:“李察殿下,这样......不太好吧?他们毕竟还
没有进攻,也没说是要打我们。我们要是出兵,不是正好给了他们借口?”
李察哈哈笑起来,说:“有没有借口,他们都会来打的!”
接下来的几天,李察把自己关进魔法实验室里,足不出户。但是每天都有几十甚至
上百条命令从实验室里发出。部分命令就在黑玫瑰古堡的范围内执行,更多的命令则被
送往各个位面。
五天之后,古堡周围的位面传送门纷纷亮起,一个个气息强横危险的追随者从传送
门走出。森马,阿西瑞斯,提拉米苏,等等等等。除了奥拉尔、刚德寥寥数人外,所有
追随者悉数到场。
在他们身后,是源源不绝的大军。而来自法罗的军队数量最多,超过其它位面的总
和。特别是一个个身量极为高大的寒霜武士,更是让人侧目。相比之下,数百箭兽就显
得不那么起眼了。可是跟随李察在法罗征战过的人都知道,这些箭兽的威力不在寒霜武
士之下。
寒霜武士,箭兽,精英黯锋骑士,从法罗传送门出来的全是高阶战士,最差的也是
人形骑士这一级别。论等级、论装备,这已是大陆罕见的强军。
然而更重要的还是他们的数量。漫漫无际的队伍,甚至让阿克蒙德的将军们也看傻
了。对诺兰德豪门来说,藏于各开拓位面的私军才是家族核心战力,但是象李察这样,
数量和质量达到如此之大差距的,实在只能用异常两个字来做评价了。
当大军出尽,李察也从魔法实验室走出。他扫了一眼漫山遍野的大军,就召来高大
的神圣独角兽,策骑下山。
预定出战的追随者们纷纷策动魔骑,跟在李察身后。再往后,则是大队的构装骑士
,最后步兵和骑兵方阵也一个跟着一个动了。
仅仅片刻,十万虎狼之师就随着李察滚滚而去,一路北进。
李察大军还没有走出亚山领,神圣同盟方向上集结的军队就得到了消息。图兰公爵
即刻召开了紧急会议,商议对策。
若大的会议厅内,满满地挤了近百人。半站半坐。这还是图兰公爵限定每个出兵家
族仅能派两人参会的情况下。
不管什么样的规定,总归会有些特权人士可以找到理由多带几个人进来。能够坐在
会场里这件事本身,已经被贵族们视为身份地位的一种象征。
“他居然敢进攻我们?”
“简直胆大妄为!”
“必须迎头痛击!”
会议厅内嘈杂一片,李察的主动进军被大多数人视为难以接受的挑衅。
贵族们群情激愤,好象全都忘记了还是浮岛豪门时的阿克蒙德是如何强势凶悍,哪
怕阿克蒙德未进浮世德前,也很少人愿意和这个疯子家族单独正面交锋。
图兰公爵双眉紧锁,贵族们的叫嚣除了嗓门够大之外毫无意义。但他们言辞虽然空
洞,也根本没有提出什么好的策略战术,可这毕竟代表了大多数人的情绪。
这是一个松散的联盟,贵族携私军而来,也可随时撤走。图兰公爵名义上是总指挥
,但也不能事事如意。
公爵转向身旁一个外貌平平无奇的中年法师,低声问:“加西亚先生,您的意思是
?”
加西亚等级不高,连大魔导师都不是,但图兰公爵对他的态度却是格外尊重。加西
亚向激动的贵族们一指,微笑着说:“您看,都已经这个样子了,还能不打吗?”
图兰公爵点了点头。加西亚又说:“另外,您还怕打不赢吗?”
听到这句话,图兰公爵紧锁的双眉渐渐舒张开来。
联军集结的兵力此刻已经超过十五万,构装骑士也有近百骑。虽然大部分都是各家
族的诺兰德驻军,不算顶尖的,但数量优势足够弥补那点差距了。在强者方面,即有传
奇强者座镇,又有众多家族参战,圣域强者的数量比李察只多不少。
如此兵力、装备和强者全部占优的情况下,若还不敢打,那就是个笑话了。
图兰公爵蓦然醒觉,自己竟是隐隐地怕了李察,怕了他那不败的传说。但他看了一
眼加西亚,立刻信心大增。
加西亚是一年多前被图兰公爵招募的。他仅仅有十五级的魔力,在公爵麾下的法师
中根本排不上号。然而加西亚真正的价值却在于他的统帅和管理能力,即是一个难得的
领主,更是无双的统帅。
在图兰家族的私属位面,加西亚仅用数月时间就打开了僵持多年的局面,随即挥军
横扫整个位面,一举击溃了大陆上最强大的两个帝国,并因此赢得了图兰公爵毫无保留
的信任。
“李察可不好对付。”图兰公爵提醒了一句。
“我知道,请您相信,我从来不会轻敌。”加西亚微笑着说。
公爵走上讲台,举手示意,等会场安静下来后,才一字一句地说:“李察既然敢于
挑战我们的尊严,那么,我们就给他战争!”
会场寂静一刻后,随即被扑天盖地的欢呼声淹没!
亚山北部,是一片辽阔的平原,上面点缀着零星的山脉和纵横交错的河流。这里是
天然的战场,即适合大规垩模的军团战,也有各种战术回旋的余地。
当李察率领大军开入平原后不久,就在远方的地平线上看到了连绵无尽的军营。
李察和加西亚都选择了这里作为战场。
决战在第二天开始。李察把近三万人向两翼撒出,自己则率领六万大军进入正面战
场。在他的对面,是图兰公爵率领的十二万大军。
“他输定了!”加西亚淡淡地说。
图兰公爵深有同感:“本来兵力就不占优,居然还敢分兵。这是几十万人的大战,
不是几千人的小打小闹。李察号称战场之王,呵呵,大规垩模战争的指挥和小战场那可
是截然不同的。”
“今后的战场之王,就是公爵大人您了。”加西亚适时地恭维了一句。
图兰公爵矜持地笑了。
双方战线相距千米时,李察勒停了神圣独角兽,遥望着神圣同盟的大军。
就在不久之前,他们还算是身处同一方战壕,但现在已经变成了战场上的敌人。李
察心中颇有感慨,命令大军停止前进,自己独自策骑向对面奔去。
神圣同盟一方,图兰公爵也孤身来到战场中垩央,与李察相会。
“李察,你不可能与整个神圣同盟抗衡!看在相识一场的份上,我可以给你最后一
个机会。立刻投降,回归神圣同盟,宣誓效忠无定陛下。这是你避免毁灭的惟一途径!
”图兰公爵威严地说。
李察淡然一笑,说:“这句话也是我想对你说的。立刻投降,图兰家族还能保住浮
岛的位置。”
图兰公爵脸色阴沉,哼了一声,说:“这么说,我们没什么好谈的了。”
图兰和李察各回本阵,凄厉的战号不断回荡在战场上空,庞大的军阵按照既定的战
术开始移动。
当图兰公爵归队时,恰好与本方的构装骑士们擦肩而过。整整一百二十骑构装骑士
,让图兰公爵心潮澎湃。他倒没指望在构装骑士上击败李察,毕竟大家都知道阿克蒙德
家族的构装骑士超过两百骑,而李察本人名下的还都是套装骑士。
可是两百构装骑士不可能全部出战,必须分兵扼守私属位面,就象图兰也不可能把
家族的构装骑士都调出来一样。
一百二十骑构装骑士,只要拖得住李察的构装骑士,这场战争就已经赢了一半。在
图兰公爵的心中,李察现在惟一的优势也就在构装骑士的数量上了。
阿克蒙德军阵中垩央的骑兵也策马向前,那是一片黑色的海洋。狰狞的魔骑、黑色
的铠甲,以及沉默肃杀的气势,都是名声在外的黯锋骑士的典型特征。
图兰公爵眼皮一跳,心中莫名的一紧。其它贵族们也大都脸色难看,此时他们才想
起了黯锋骑士那构装终结者的称号。
“不要怕,我们有一百二十骑构装骑士,而且有大量精锐骑士。”加西亚适时地说
。他的话让图兰公爵悬着的心放下了一些。
当李察的黯锋骑士在诺兰德首次出现后,各大家族就根据自己的特色兵种研究了无
数针对性方案。加西亚说的这两点正是应对黯锋骑士的关键。
当构装骑士的数量足够多,那么冲击力将会无以伦比,黯锋骑士也挡不住他们的突
破,连普通传奇都要暂避锋芒。
avatar
t*1
4
struct NetReq {
int64_t _reqID;
int32_t _train; // [0, 5000)
int16_t _start; // [0, 10)
int16_t _length; // [1, 10]
};
struct NetResp {
int64_t _reqID;
int32_t _respID;
int32_t _seat;
};
记住,实际任何商用协议,client必须定期发送heartbeat。否则是设计缺陷,而且是
不可弥补的缺陷。因为如果因为网络原因造成client断连,server不会知道。
我建议heartbeat采用_train=-1,其他随意。heartbeat因该只在idle时候发送。
我的server设定heartbeat + 2秒没有收到任何东西,自动断开连接。
你可以选择不支持hearbeat功能。但是这样你就不能随便断开连接。老老实实total <
500 TCP测试到底。否则我的服务器会自动拒绝所有>500的连接。这不是我的问题,因
为设计缺陷是你选择的,不是我。
avatar
S*1
5
赞,可惜我妈3月24的飞机
avatar
c*o
6
前阵儿我家ld也接到电话让改理由,我们是要申请绿卡,ld写的很含蓄,人家让直接就
写想申请绿卡这个理由,供参考
[在 peilingzhang (peilingzhang) 的大作中提到:]
:今天收到邮件说:理由不充分,请写明办理豁免的真实具体理由。打电话N边 都打不
通纽约服务留学。
:理由如下:
:我叫***,2014年毕业于****博士学位,毕业后没有在国内工作,很快收到了2019表格
:,同年12月赴*****做博士后工作,主要负责****项目,由对方大学资助,眼下两年半
:的合作即将结束,由于专业不同,我希望能继续的博士,或者申请其他学校的博士,
这样对我日后的学术研究将会大有裨益。故此,我开始考虑申请J1豁免。
: 同时,我的太太,****,她是国内普通大学的本科学历,她有意趁此机会攻
:读她的研究生学历。故此,我决定申请J1豁免,望大使馆的工作人员给予帮助,在此
不胜感激!!
: 我的家庭深知祖国多年培养的不易,愿意用有效的知识和学习报效自己的祖
:国!
:可我觉得理由已经很清楚了,就是我们都想继续上学。为什么大使馆还认为不从分?
avatar
g*u
7
请解释下,是不是说我一个socket开两个线程,一个往里写NetReq结构,
一个往外读NetResp结构?seat表示什么?如果输入_train = -1,
seat又应该是什么?为什么reqID是64位,而respID是32位?

<

【在 t**********1 的大作中提到】
: struct NetReq {
: int64_t _reqID;
: int32_t _train; // [0, 5000)
: int16_t _start; // [0, 10)
: int16_t _length; // [1, 10]
: };
: struct NetResp {
: int64_t _reqID;
: int32_t _respID;
: int32_t _seat;

avatar
t*1
8
我如何实现是我的问题。但是我handle所有socket I/O只用一个线程。
任何参数不对,seat都是-1。
否则seat>=0

【在 g****u 的大作中提到】
: 请解释下,是不是说我一个socket开两个线程,一个往里写NetReq结构,
: 一个往外读NetResp结构?seat表示什么?如果输入_train = -1,
: seat又应该是什么?为什么reqID是64位,而respID是32位?
:
: <

avatar
g*u
9
进去出来都是128 bit,我刚刚测出来CPU支持每秒8M请求,
换成带宽是1024Mbit,1GB ethernet将将能支持。8M/s搞不定,
5M/s应该没问题。

【在 t**********1 的大作中提到】
: struct NetReq {
: int64_t _reqID;
: int32_t _train; // [0, 5000)
: int16_t _start; // [0, 10)
: int16_t _length; // [1, 10]
: };
: struct NetResp {
: int64_t _reqID;
: int32_t _respID;
: int32_t _seat;

avatar
g*u
10
老魏你有没有可能支持以下两者之一:
- 要么NetResp返回分配的座位
- 要么benchmark结束你的程序推出后你dump出来座位分配方案。
不然没法验证你出票的正确性。

【在 t**********1 的大作中提到】
: struct NetReq {
: int64_t _reqID;
: int32_t _train; // [0, 5000)
: int16_t _start; // [0, 10)
: int16_t _length; // [1, 10]
: };
: struct NetResp {
: int64_t _reqID;
: int32_t _respID;
: int32_t _seat;

avatar
t*1
11
NetResp本来就返回分配的座位号呀?

【在 g****u 的大作中提到】
: 老魏你有没有可能支持以下两者之一:
: - 要么NetResp返回分配的座位
: - 要么benchmark结束你的程序推出后你dump出来座位分配方案。
: 不然没法验证你出票的正确性。

avatar
g*u
12
好。我没问题了。

【在 t**********1 的大作中提到】
: NetResp本来就返回分配的座位号呀?
avatar
n*j
13
浪费了点,应该 64 bit 就足够了。另外,一般留几个 bit 做 opcode,比如
heartbeat 。

【在 t**********1 的大作中提到】
: struct NetReq {
: int64_t _reqID;
: int32_t _train; // [0, 5000)
: int16_t _start; // [0, 10)
: int16_t _length; // [1, 10]
: };
: struct NetResp {
: int64_t _reqID;
: int32_t _respID;
: int32_t _seat;

avatar
t*1
14
可劲儿浪费都没事。俺们赌的是1M/s。

【在 n****j 的大作中提到】
: 浪费了点,应该 64 bit 就足够了。另外,一般留几个 bit 做 opcode,比如
: heartbeat 。

avatar
t*1
15
zhaoce表示反对。为了照顾他的理解力,协议小修改如下:
struct NetReq {
int64_t _reqID;
int32_t _train; // [0, 5000)
int16_t _start; // [0, 10)
int16_t _stop; // [1, 10]
};
struct NetResp {
int64_t _reqID;
int32_t _respID;
int32_t _seat;
};
唯一变化就是length变成stop。这样我自己算length=stop-start。
avatar
z*e
16

没用了,你的算法我看明白了
是傻瓜算法,双循环是最高复杂度
难怪你敢唧唧歪歪,靠,这种算法有个毛现实意义?

【在 t**********1 的大作中提到】
: zhaoce表示反对。为了照顾他的理解力,协议小修改如下:
: struct NetReq {
: int64_t _reqID;
: int32_t _train; // [0, 5000)
: int16_t _start; // [0, 10)
: int16_t _stop; // [1, 10]
: };
: struct NetResp {
: int64_t _reqID;
: int32_t _respID;

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。