标签: server

如何在python程序中关闭Ctrl-C上的套接字连接

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)

any_connection = False

while True:
    try:
        conn, addr = s.accept()
        data = conn.recv(1024)
        any_connection = True

        # keep looking
        if not data: continue

        pid = os.fork()

        if pid == 0:
            server_process(data, conn)
    except KeyboardInterrupt:
        break

if any_connection:
    print("Closing connection")
    conn.close()
Run Code Online (Sandbox Code Playgroud)

KeyboardInterrupt在用Python编写的无限运行的TCP服务器上捕获信号.但是,即使我知道它正在关闭连接,因为它打印Closing Connection,当我尝试重新运行服务器时,我得到:

OSError: [Errno 48] Address already in use

我不知道发生了什么,因为我知道我正在打电话conn.close().

并且运行killall python3没有解决它,我不断得到错误,除非我等待很长时间或更改端口.我也试图grep所有python3进程,但我什么都没得到.

我正在运行OS X Yosemite.

python sockets tcp server

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

如何检测请求是否来自移动设备

在服务器端,有什么方法可以检测来自移动设备(来自移动应用程序)的特定 API 请求?我了解用户代理嗅探,但我不喜欢这种方法,因为没有足够的理由不实施它。我还知道,当来自我的移动应用程序时,我可以添加一些标记来请求,但这似乎也有点脏。实际上有什么“正确”的方法可以做到这一点吗?

我想它没有太大变化,但我的后端是在node.js 中。

问候,谢谢!汤姆

mobile request detect server

11
推荐指数
2
解决办法
2万
查看次数

Tomcat Server在tmp中创建目录

每次我的嵌入式虚拟tomcat服务器运行(spring boot)时,它都会创建一个/tmp/名为的目录结构tomcat.##########################.8080(我猜8080是用于端口或其他东西,但8080是一致的).这种结构不会占用太多空间,但经常运行tomcat服务器后,这可能会填满.我可以作为可配置选项阻止这种情况发生吗?

创建的路径的示例可以类似于: /tmp/tomcat.1185139485157901.8080/work/Tomcat/localhost/_/ SESSIONS.ser WEB-INF/等等.等.

linux tomcat tmp server

11
推荐指数
1
解决办法
3311
查看次数

任何c#应用程序都可以在linux上运行

我正在用c#开发游戏服务器.服务器通过套接字与客户端通信,并使用自定义数据包协议发送byte [].问题是,这个软件是特定于Windows OS还是能够在linux服务器上运行.我在不同的论坛上阅读了不同的帖子,开发人员说他们的服务器只是windows os,有人说它可以在linux上运行.

有什么具体因素吗?应用程序是否必须特定编写才能在Linux上运行?

c# linux windows server

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

防止直接url访问php文件

我在我的网站上有一个php文件说"check.php",并在提交表单时执行.

说我的网站是"myweb.com",php文件位于"PHP"目录中

我想阻止直接url访问"check.php"文件,即如果有人输入网址" myweb.com/PHP/check.php ",则不应执行php文件,而应返回错误消息.

我试图通过在.htaccess中设置规则来阻止访问,但即使我尝试提交表单,它也会阻止php.

.htaccess规则:

RewriteEngine on 
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ 
(.*)\.php$ /index.html [L] 
Run Code Online (Sandbox Code Playgroud)

有没有可行的办法呢?

html php .htaccess server

11
推荐指数
2
解决办法
3万
查看次数

在节点中提供文件与数据库的内容

我正在制作旧版静态网站的新版本,该网站长达50多个静态页面.

因此,我使用旧内容制作了一个JSON文件,因此新网站可以更多CMS(具有常用页面的模板),因此后端获得更多干.

我想知道我是否可以通过JSON将这些内容提供给我的观点,或者我是否应该在MySQL数据库中提供它?

我正在使用Node.js,并且在Node I中可以将该JSON文件存储在内存中,因此当用户请求数据时不会进行文件读取.

这有正确的做法吗?服务缓存的JSON文件或通过MySQL提供性能差异?

有问题的文件大约是400Kb.如果文件大小与一个技术的选择相关?

mysql json node.js server

11
推荐指数
2
解决办法
1496
查看次数

在此服务器PHP上找不到请求的资源/

我在cmd上使用php运行php服务器php -S localhost:8080,如下所示:

在此输入图像描述

我在打开localhost时遇到了这个问题:

在此输入图像描述

我该怎么办?

php localhost server

11
推荐指数
3
解决办法
2万
查看次数

如何查找私钥位置

我正在尝试使用Filezilla访问服务器,并被告知我需要使用公钥/私钥进行身份验证.我使用终端创建了密钥,但在我的计算机上找不到它们.

这是密钥所在的位置:(/ Users/ed/.ssh/id_rsa)

我检查了我的主目录,但文件夹.ssh无处可寻.有一个秘密的地方.ssh文件夹存储,我该如何访问它?

我的Mac运行在OS X ElCaptain上.我真的很感激任何帮助.

ssh filezilla server private-key

11
推荐指数
2
解决办法
4万
查看次数

Gunicorn + nginx - 忽略 EPIPE

我在谷歌计算上运行了一个 nginx-gunicorn-flask 设置,我不断从 gunicorn 获得以下信息:

[2019-04-19 20:50:49 +0000] [3345] [DEBUG] POST /
[2019-04-19 20:50:49 +0000] [3345] [DEBUG] Ignoring EPIPE
Run Code Online (Sandbox Code Playgroud)

在 100 个请求中,大约有 23 个是这样出现的。在访问日志中只显示了 23 个请求,它们都是 200 个。

从 nginx 访问日志显示 504,在错误日志中我看到:

2019/04/19 20:50:49 [error] 3097#3097: *295 upstream timed out (110: Connection timed out) while sending request to upstream, client: ip, server: , request: "POST / HTTP/1.1", upstream: "http://unix:/home/user/Server/server.sock/", host: "ip"

Run Code Online (Sandbox Code Playgroud)

我试过设置

proxy_connect_timeout 75s;
proxy_read_timeout 300s;
Run Code Online (Sandbox Code Playgroud)

--timeout 300根据其他问题在 nginx 和gunicorn上的位置,但没有帮助。

来自 gunicorn 的消息并没有真正帮助确定原因,我没有找到任何相关信息

一直试图解决这个问题,我很感激任何想法。此外,这些请求中的每一个都需要大约 1-2 秒,并且 jmeter …

python nginx gunicorn server ubuntu-18.04

11
推荐指数
2
解决办法
2926
查看次数

报告本地时间而不是 UTC 服务器时间

我创建了一个页面,其中向用户显示服务器报告的天气数据。时间保存为 UTC,如何从 Blazor 服务器应用程序显示本地用户或浏览器的时间?

c# localization utc server blazor-server-side

11
推荐指数
2
解决办法
9861
查看次数