标签: inetd

如何将Unix POSIX文件描述符或标准输入句柄转换为Socket?

inetdsystemd类型的系统中,系统可以绑定套接字并使用已经存在的套接字启动应用程序,例如提供基于套接字的服务启动.我想在我的一个Haskell守护进程中利用这个功能.

守护进程目前呼吁,socket,bindSocket,listen创建一个Socket对象,我以后可以叫accept上.要将此更改为inetd类型系统,我需要使用标准输入作为a Socket,但到目前为止我能找到的是stdin :: Handle,或者fdToHandle :: CInt -> Handle- 我都不需要.

我似乎无法找到任何类型的东西,也不会找到任何Handle -> Socket类似的东西stdin :: Socket.我能找到的最近的mkSocket是非常低级的,并且大多数其他语言(即Ruby)提供调用以将文件描述符转换为套接字而不必指定各种其他参数.

networking haskell posix inetd systemd

8
推荐指数
1
解决办法
801
查看次数

使用 inetd 或不使用 inetd...我什么时候应该在我的网络服务器程序中使用 inetd?

谁能给出一组简明的现实世界考虑因素,以推动选择是否使用 inetd 来管理充当网络服务器的程序?

(如果使用inetd,我认为它会改变程序中网络代码的要求,所以我认为它肯定与编程相关,而不是一般IT)

这个问题是基于我见过的一个实现,该实现使用由 inetd 管理的控制程序来启动一个网络监听器,然后该监听器永远运行并承受恒定的重负载。它似乎不太适合教科书 inetd 使用配置文件(按需、不经常使用、轻量级),这让我对更普遍的问题产生了兴趣。

network-programming inetd

6
推荐指数
1
解决办法
8927
查看次数

从套接字描述符中恢复IP /端口

我正在写一个inetd的克隆,我必须运行一个服务器,打印连接到它的客户端的IP和端口.

当我覆盖STDINSTDOUT使用套接字描述符时,我的初始解决方案是恢复sockaddr_in包含所需信息的结构.getsockname()但是,这样做会返回一个空结构,所有位都设置为0.

知道我的方法有什么问题吗?我还可以使用其他方法来恢复IP /端口吗?

谢谢

c sockets tcp inetd

6
推荐指数
1
解决办法
1万
查看次数

通过 tftp 访问符号链接

我正在使用GNU inetdand tftpd(在 下cygwin,但这并不重要),并且我需要有许多符号链接仅指向几个不同的文件,这些文件应该可以通过tftp.

tftp 目录如下所示:

lrwxrwxrwx 1 12 Jun  4 21:29 link.bin -> file.bin
-rw-r--r-- 1  6 Jun  2 01:38 file.bin
Run Code Online (Sandbox Code Playgroud)

tftp 是这样说的:

tftp> get link.bin
Error code 1: File not found
Run Code Online (Sandbox Code Playgroud)

我用了ln -s file.bin link.bin

tftpd 可以处理符号链接吗?我究竟做错了什么?

linux symlink inetd tftp

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

为什么gdb不能附加到使用inetd召唤的服务器应用程序?

我有一个服务器应用程序,可以使用inetd为客户端召唤.但是,如果我尝试连接到使用inetd启动的服务器进程,我会得到以下响应:ptrace:不允许操作.

gdb --annotate=3 /my/app/here <processId>

Current directory is /usr/local/bin/
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Reading symbols from /usr/local/bin/flumed...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Attaching to program: /my/app/here, process <processId>
ptrace: …
Run Code Online (Sandbox Code Playgroud)

c++ gdb inetd

3
推荐指数
1
解决办法
7381
查看次数

标签 统计

inetd ×5

c ×1

c++ ×1

gdb ×1

haskell ×1

linux ×1

network-programming ×1

networking ×1

posix ×1

sockets ×1

symlink ×1

systemd ×1

tcp ×1

tftp ×1