首页 > 其他分享 >在django项目中再开启一个socket服务

在django项目中再开启一个socket服务

时间:2022-11-14 11:14:25浏览次数:53  
标签:00 socket 30 开启 django 2D import

在django项目中再开启一个socket服务

1.任意项目任意地方写一个createSocket.py文件(文件名任意)

import socket
from django.conf import settings

sock = socket.socket()

def startSocket():
    ip = settings.LOCALHOSTIP
    port = settings.LOCALHOSTPORT
    sock.bind((ip, port))
    sock.listen(10)
    while True:
        try:
            conn, ip = sock.accept()
            res = conn.recv(1024)
            print(res)
        except:
            continue

2.在manage.py中开启进程,运行socket

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
from multiprocessing import Process
from smartlabdemo.socketserver.createSocket import startSocket


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartlabdemo.settings.dev')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
        
    # 开启进行监听硬件
    '''
        django项目中再开启一个socket会报错,原因是python一个进程下只能有一个socket服务
    '''
    socketProcess = Process(target=startSocket)
    # 启动进程
    socketProcess.start()
    
    
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

3.测试,写一个模拟客户端clientdemo.py

import socket

data = 'AA 55 00 00 00 90 00 01 00 00 00 00 00 01 30 30 2D 30 30 2D 30 30 2D 30 30 2D 30 30 2D 30 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 5F 4C 61 6D 70 73 68 61 64 65 5F 4C 32 35 34 00 00 00 00 72 65 70 6F 72 74 50 6F 77 65 72 44 61 74 61 00 00 00 00 00 00 00 00 3C 32 32 38 2E 30 33 56 00 00 00 30 2E 30 30 30 41 00 00 00 00 30 2E 30 30 57 00 00 00 00 00 30 2E 30 30 33 6B 57 2A 68 00 00 00 00 00 00 30 64 30 30 68 30 31 6D 35 36 73 00 00 00 00 38 0F '

client = socket.socket()
ip = '192.168.50.227'
port = 8100
client.connect((ip, port))
client.send(data.encode('utf8'))
print('发送成功')

4.结果

成功!!!!!!!!!!!!!

标签:00,socket,30,开启,django,2D,import
From: https://www.cnblogs.com/chunyouqudongwuyuan/p/16888354.html

相关文章

  • 手机与电影:人人创作时代开启,技术打开艺术的边界
    11月12日,第35届中国金鸡百花电影节在厦门召开。作为这个盛典的独立单元,第三届“华为影像·金鸡手机电影计划”的颁奖仪式同期举行。相比走过35年的金鸡百花电影节,刚刚走到......
  • Django更换数据库和迁移数据方案
    前言双十一光顾着买东西都没怎么写文章,现在笔记里还有十几篇半成品文章没写完…今天来分享一下Django项目切换数据库和迁移数据的方案,网络上找到的文章方法不一,且使......
  • websocket
    websocket是基于tcp的一种新协议,它实现了双全工通信,即允许服务器主动发信息给客户端,因此,再websocket协议中,服务器和浏览器只需要一次握手就可以建立持久性的连接,实现......
  • 安卓中的socket通讯
    2.serversocket的建立和使用: 新建一个javaproject然后新建一个class:importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintStream;impor......
  • Linux开启DNS Server后解析外域受限问题
      CentOS7系统里起了一个DNSServer,一切顺利,针对本地域的各项解析都很成功,欢欣鼓舞。 在欢欣鼓舞时却发觉DNS服务器无法进行域外域名解析,查找原因发现除了本地定义的......
  • windows socket网络编程--事件选择模型
    目录事件选择模型概述API详解工作原理代码实现事件选择模型概述Winsock提供了另一种有用的异步事件通知I/O模型——WSAEventSelect模型。这个模型与WSAAsyncSelect模型类......
  • C#实践炸飞机socket通信
    一、前言最近老师要求做课设,实现一个“炸飞机”游戏,我是负责UI界面实现和Socket通信实现的,在这里想总结一下我实现Socket的具体过程,对其中的产生的问题和实现的方法进......
  • django信号
    一、简介Django包含一个“信号调度器”,当框架中其他地方发生动作时,它可以帮助解耦的应用程序得到通知。简而言之,信号允许某些发送者通知一组接收者某些动作已经发生。信......
  • Apple开发_Socket_UDP协议广播机制的实现
    1、前言1.1什么是UDP协议广播机制?举一个例,例如在一群人群中,一个人要找张三,于是你向人群里大喊一声(广播):“谁是张三”如果它是张三,它就会回应你,在网络中也是一样的......
  • 【杭州专场】蚂蚁单测自动生成产品体验活动招募开启
    「单元测试产品体验样板间」是由蚂蚁集团技术风险团队&企业级应用设计团队联合举办,针对于单元测试产品发起的线下用户体验活动,旨在邀请相关领域的技术同学亲临现场互动交流......