V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zy820
V2EX  ›  问与答

我用阿里云 ECS 写个 tcp server 接收 GSM 数据,但是总是有一些国外 IP 连接导致 server 崩了是什么原因,怎么解决

  •  
  •   zy820 · 2018-07-18 11:11:00 +08:00 · 1453 次点击
    这是一个创建于 2350 天前的主题,其中的信息可能已经有所发展或是发生改变。
    8 条回复    2018-07-18 19:21:10 +08:00
    mhycy
        1
    mhycy  
       2018-07-18 12:24:49 +08:00
    代码呢?
    zy820
        2
    zy820  
    OP
       2018-07-18 13:02:56 +08:00
    @mhycy
    import socketserver

    class MyTCPHandler(socketserver.BaseRequestHandler):

    def handle(self): #所有请求的交互都是在 handle 里执行的,
    while True:
    try:
    self.data = self.request.recv(1024).strip()#每一个请求都会实例化 MyTCPHandler(socketserver.BaseRequestHandler):
    print("{} wrote:".format(self.client_address[0]))
    print(self.data)
    #self.request.sendall(self.data.upper())#sendall 是重复调用 send.
    except ConnectionResetError as e:
    print("err ",e)
    break

    if __name__ == "__main__":
    HOST, PORT = "localhost", 9999 #windows
    #HOST, PORT = "0.0.0.0", 9999 #Linux
    server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) #线程
    server.serve_forever()
    mhycy
        3
    mhycy  
       2018-07-18 13:42:35 +08:00
    崩掉报什么?
    zy820
        4
    zy820  
    OP
       2018-07-18 13:58:10 +08:00
    @mhycy 一直
    print("{} wrote:".format(self.client_address[0]))
    print(self.data)
    zy820
        5
    zy820  
    OP
       2018-07-18 14:05:20 +08:00
    @mhycy client 关闭就一直死循环了
    mhycy
        6
    mhycy  
       2018-07-18 14:09:41 +08:00
    @zy820
    本来就没有终止条件
    opengps
        7
    opengps  
       2018-07-18 14:15:56 +08:00
    肯定是那些扫描之类的,发送的数据,你服务器程序识别不了,我做的 gps 接受数据也是遇到过,后来丢弃了所有不合规范的数据包之后好了
    zy820
        8
    zy820  
    OP
       2018-07-18 19:21:10 +08:00
    @mhycy 可以了,加个 if not self.data:,谢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1177 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.