我有一个用C#编写的客户端和一个用python编写的服务器.我通过套接字发送的消息是8个字节,后跟数据,8个字节是数据长度.
在发送之前的C#中,我将8字节数据长度转换为太大的endian,如图所示:
public void Send(SSLMsg m)
{
string json = m.Serialize();
byte[] data = Encoding.ASCII.GetBytes(json);
ulong dataLen = (ulong)data.Length;
byte[] dataLenPacked = packIt(dataLen);
Log("Sending " + dataLen + " " + json);
sslStream.Write(dataLenPacked);
sslStream.Write(data);
sslStream.Flush();
}
private byte[] packIt(ulong n)
{
byte[] bArr = BitConverter.GetBytes(n);
if (BitConverter.IsLittleEndian)
Array.Reverse(bArr, 0, 8);
return bArr;
}
Run Code Online (Sandbox Code Playgroud)
消息发送成功,我在python服务器代码中被绑定,因为unpack格式应该是正确的,不应该吗?
(length,) = unpack('>Q', data)
# len(data) is 8 here
# length is 1658170187863248538
Run Code Online (Sandbox Code Playgroud)
不是big-endian字符'>'?为什么我的长度太长了?
有一个错误,我正在解包错误的8个字节,已经修复,现在我正在解包正确的数据,我仍然有相同的问题.
(length,) = unpack('>Q', data)
# len(data) is 8 here
# …Run Code Online (Sandbox Code Playgroud) 我使用此(https://github.com/facebook/react-native-fbsdk)组件尝试使用Facebook为我的应用程序设置身份验证.我已成功配置它,因此登录按钮在两个平台上都给我一个有效的令牌.
问题是应用程序records successfully logged user和摆脱它是相当棘手的(只有重新安装可以帮助).此外,当您尝试在Android上的Facebook应用程序中更改登录用户时 - 它会出错:
'用户以不同的Facebook用户身份登录'
我总是收到此屏幕而不是登录表单,我可以在其中输入其他凭据或至少更改帐户.
我使用提供LoginManager.logInWithReadPermissions登录,LoginManager.logOut似乎什么都不做.
那么,to give a user a choice如果登录不正确或者主-fb-app帐户发生了变化,我是否可以提出申请?
我想在angular 4应用程序中实现动态路由.我想要做的是将新的Route对象推送到Router config.代码看起来像
@
NgModule({
declarations: [
AppViewComponent
],
imports: [
RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'appview', component: AppViewComponent }
{ path: '**', redirectTo: 'home' }
])
],
providers: []})
export class AppModuleShared {
constructor(router: Router, routerModule: RouterModule) {
console.log('Routes: ', JSON.stringify(router.config, undefined, 1));
router.config.push({ path: 'new/random/path', component: AppViewComponent });
router.config.forEach((x, i) => {
console.log(`${i}: ${JSON.stringify(x, undefined, 1)}`);
});
}}
Run Code Online (Sandbox Code Playgroud)
当应用程序启动时,我想将新的Route Object推送到配置并转到构造函数中的新路径.执行构造函数后,在控制台日志中我有这样的事情:
5: {
"path": "new/random/path"
}
Run Code Online (Sandbox Code Playgroud)
看起来新的Route …
我目前正在努力改进我的 Jenkins Pipeline,它启动一个带有暴露端口的 Docker 容器。但由于事实上 Jenkins 实例被很多人和他们的项目大量使用,我遇到了问题,即公开的端口映射已经在使用中。
我的想法是确定主机上未使用的端口,以避免这个问题。为了做到这一点,我想用一种简单的方法来扩展我们的 Jenkins 共享库,以检查并返回主机系统中第一个未使用的端口。
有谁知道如何实现这一目标?
我当前的解决方案是利用 shell 函数,该函数以某种方式使用 netstat 工具。
文件:getRandomFreePort.groovy
def call() {
sh '''
#!/bin/bash
while
[[!-z $CHECK]]; do
PORT = $(((RANDOM % 60000) + 1025))
CHECK = $(sudo netstat - ap | grep $PORT)
done
echo $PORT
'''
}
Run Code Online (Sandbox Code Playgroud) 我在cortex-m0上有一个svc异常处理程序的以下实现:
int __attribute__((naked))
sv_call_handler(uint32_t n, uint32_t arg1, uint32_t arg2, uint32_t arg3,
uint32_t arg4, uint32_t arg5)
{
irq_off();
Run Code Online (Sandbox Code Playgroud)
当我为cortex-m0构建它时,它看起来像这样:
0x7a50 <sv_call_handler> movs r4, r0
0x7a52 <sv_call_handler+2> str r1, [r7, #12]
0x7a54 <sv_call_handler+4> str r2, [r7, #8]
0x7a56 <sv_call_handler+6> str r3, [r7, #4]
0x7a58 <sv_call_handler+8> bl 0x3194 <irq_off>
Run Code Online (Sandbox Code Playgroud)
当然,导致硬故障,R7中的值是"未定义的",并且它很可能包含不在地址范围内的值.
当我删除裸属性时,程序集更有意义:
0x7a50 <sv_call_handler> push {r4, r5, r7, lr}
0x7a52 <sv_call_handler+2> sub sp, #32
0x7a54 <sv_call_handler+4> add r7, sp, #8
0x7a56 <sv_call_handler+6> str r0, [r7, #12]
Run Code Online (Sandbox Code Playgroud)
我之前没有使用过裸属性,为什么现在会发生这种情况呢?与svc异常处理程序是一个特殊情况这一事实有什么关系吗?
我的Web应用程序存在一个小问题:一个与spring boot API连接的angular2应用程序。
我无法从angular2应用访问我的请求。我收到此错误:
Failed to load http://localhost:8080/deliveryMan/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
Java代码:
@RestController
@RequestMapping(value = "/deliveryMan")
@CrossOrigin
public class DeliveryManController {
@Autowired
DeliveryManService deliveryManService;
@RequestMapping(value = "/getAllDeliveryMan", method = RequestMethod.GET)
public Iterable<DeliveryMan> getAllDeliveryMan(){
return deliveryManService.findAll();
}
@RequestMapping(method = RequestMethod.PUT, consumes = "application/json")
public DeliveryMan addDeliveryMan(@RequestBody DeliveryMan deliveryMan) throws InvalidObjectException {
deliveryManService.save(deliveryMan);
return deliveryMan;
}
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan
public class MyApp{
public static void main(String[] args) {
SpringApplication.run(MyApp.class, …Run Code Online (Sandbox Code Playgroud)