小编God*_*opp的帖子

在您的Android应用中只有一个使用片段的活动是不好的做法?

我想知道这是否是Android社区中的'不'.

我的应用程序只有一个MainActivity,并使用ViewPager和TabLayout来浏览应用程序中的片段.

我看到的唯一问题是,如果用户按下后退按钮,它将退出应用程序,应用程序将不会像按下主页按钮那样保持活动状态.

你的意见?

android android-layout android-fragments

7
推荐指数
1
解决办法
2213
查看次数

Chrome自定义标签页是否要求用户下载Chrome应用?

为了使用Chrome自定义标签,您是否必须期望用户单独下载Chrome(测试版),还是在您的应用程序中实现Chrome自定义标签后将其包括在内?

android chrome-custom-tabs

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

Python Sockets - 从客户端保持与服务器的连接

我目前是第一次使用 python 的套接字库,我对计算机网络不是很有经验。

我能够连接到服务器,并且 tcp 握手已经发生,如wireshark所见。与服务器建立连接后(我无法控制服务器),连接会保持打开状态一段时间,但一小段时间后,服务器发送“FIN,ACK”并终止连接。我试图了解如何在客户端能够访问服务器时保持此连接活动。

查看 tcp 连接,似乎可以每隔一段时间发送一个数据包。也许是一种保持活动状态的信息。我原以为socket.send('hello')在另一个线程中每 5 秒使用一次会保持与服务器的连接打开,但一段时间后我仍然收到“FIN,ACK”。

在文档中我发现了一个setsockopt()但是使用它没有明显的区别。我client.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)在建立连接之前和之后都尝试过。我不完全理解这种方法应该如何工作,所以也许我用错了。没有太多提到这一点。我在某处读到它在窗户上被打破了。我不知道其中的真相。

我错过了什么?除非我可能遗漏了某些内容,否则套接字的文档似乎没有任何关于此的内容。

import socket
import time
import threading

SERVER_IP = 'THE SERVER'
SERVER_PORT = SERVER_PORT

SOURCE_IP = socket.gethostname()
SOURCE_PORT = 57004

KEEP_ALIVE_INTERVAL = 5

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

def keep_alive(interval):
    data = 'hello'
    while True:
        client.send(data)
        time.sleep(interval)

client.connect((SERVER_IP, SERVER_PORT))

t = threading.Thread(target=keep_alive, args = (KEEP_ALIVE_INTERVAL,))
t.start()

while True:
    data = client.recv(1024)
    if not data:
        break
    print data
client.close()
Run Code Online (Sandbox Code Playgroud)

python sockets network-programming tcp tcp-ip

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