小编Nol*_*oux的帖子

Erlang:找到我的IP地址

我正在尝试使用Redis为某些部分完成Load Balancer /登录服务器/游戏服务器设置.负载平衡就是其中之一.在我的Redis负载平衡实例中,我正在使用有序集.关键是应用程序名称,成员是游戏服务器的IP地址.

这就是我的问题.我想在erlang中使用一个公共方法.我找不到符合我需求的东西.我想知道我是不是在寻找一些东西.

{ok, L} = inet:getif(),
IP = element(1, hd(L)),
Run Code Online (Sandbox Code Playgroud)

给我我正在寻找的东西.我相信目前是{192,168,0,14}.但功能不是"公开的".

{ok, Socket} = gen_tcp:listen(?PORT_LISTEN_GAME, [{active,once}, {reuseaddr, true}]),
{ok, {IP, _} = inet:sockname(Socket),
Run Code Online (Sandbox Code Playgroud)

给了我{0,0,0,0}.我试过inet:getaddr("owl")这个给了我{127,0,1,1}.

我是否仅限于通过TCP发送消息并使用inet:peername(Socket)?看起来很像是为了让事情变得如此简单.我的应用程序的所有不同部分都在同一台计算机上运行以进行测试.是否会让我回到{127,0,0,1}?那不行.我需要将IP发送回用户(我的手机),以便他们可以与正确的服务器连接.环回不会......

现行守则

我要感谢所有的回复.是的,我注意到Lol4t0在新年之后的评论.所以我改变了我的代码来反映这一点.为像我这样的慢人发布这个.我必须让我的大脑陷入困境才能让这些东西被点击.

hd([Addr || {_, Opts} <- Addrs,
    {addr, Addr} <- Opts,
    {flags, Flags} <- Opts,
    lists:member(loopback,Flags) =/= true]).
Run Code Online (Sandbox Code Playgroud)

erlang

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

反汇编旧的 .COM 文件。卡在 48 字节以内。字节序问题?

我有一个老游戏... Starflight。我认为它是在 86 年推出的。好 ol' IBM PC jr 日子。我想我会打开一个反汇编器,看看它是如何工作的。我可以在我解码的小部分中看到,代码大小确实得到了优化……但我最终跳转到了文件之外的地址。这是没有意义的。

我在下面的列表中添加了评论;他们是我的“想法”。

在加载其他文件之前,我假设,int 0x3d或者int 0x0f...因为所有段寄存器都指向同一个内存段......并且该段是代码段,.COM文件,每个内存引用或跳转都应该留在文件。是的?

星际迷航

00000000 FA                       CLI                     ;Prevent interrupts
00000001 8CC8                     MOV AX,CS               ;Copy code segment to all segments
00000003 8ED0                     MOV SS,AX
00000005 8EC0                     MOV ES,AX
00000007 8ED8                     MOV DS,AX
00000009 BE2901                   MOV SI,word 0x0129      ;SI = 0x0129
0000000C 8B7C02                   MOV DI,word [SI+0x02]   ;DI = 0x3c15 (SI+2)
0000000F 47                       INC DI
00000010 47                       INC DI                  ;DI = 0x3c17
00000011 BB0507                   MOV BX,word 0x0705      ;BX = …
Run Code Online (Sandbox Code Playgroud)

assembly dos disassembly x86-16

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

标签 统计

assembly ×1

disassembly ×1

dos ×1

erlang ×1

x86-16 ×1