`
zengleo
  • 浏览: 19436 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

python 写的udp服务器和客户端变身的程序。

阅读更多
目标:实现发送端和接收端互相变身
分为  接收端
      发送端

设定可以互相变身的两台机器的 IP.

发送端特征: 0、接到变身指令
             1、检测本地MSSQL库
                1)、如果可以访问就广播(本机IP)包给接收端
                2)、如果不能访问就广播(另外一台机器的IP),然后变成接收端


接收端特征:0、接到变身指令
            1、接受数据
               1)、对比IP是否是自身IP,如果是,变身为发送端
#coding:gb2312
#主备切换器


import socket
import os
import pymssql
import ctypes
import time
import sys


#--------------------------------------------------------------------------#
# 定义发送广播包函数
#--------------------------------------------------------------------------#

def sendserver():

    in_data=raw_input('2为发送端')
    if in_data=='2':
        s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
        if loaclhost_ip=='127.0.0.1':
            windows_msg('''1、 'setting.ini'中的'GLOBAL'的字段不能设置为127.0.0.1
2、网络未连接"
3、本地IP不能设置为127.0.0.1''','警告')
            sys.exit()
        else:
            while 1:
                try:
                    con=pymssql.connect(user='sa',password='sa',\
                    host='localhost',database='s1config')
                    con.close()
                    print '连接数据库成功,发送数据IP1!',loaclhost_ip,time.ctime()
                    logfile('%s  连接数据库成功,发送数据IP1!%s \n'%(time.ctime(),loaclhost_ip))
                    s.sendto(loaclhost_ip,('255.255.255.255',3999))
                    time.sleep(20)


                except:
                    dll_data.setDBFlag(0)
                    for i in ipdata:
                        if i!=loaclhost_ip:
                            print '数据库连接不成功,发送数据IP',i,time.ctime()
                            logfile('%s 数据库连接不成功,发送数据IP是:%s  \n'%(time.ctime(),i))
                            try:
                                s.sendto(i,('255.255.255.255',3999))
                            except:
                                logfile('%s send不成功, \n'%(time.ctime()))
                            try:
                                print " 偶也,我要变身了,我成为接受方了",time.ctime()
                                logfile('%s  我要变身了,我成为接受方了  \n'%(time.ctime()))
                                acceptserver()

                            except:
                                logfile('%s 变身不成功, \n'%(time.ctime()))


    else:
        acceptserver()

#--------------------------------------------------------------------------#
# 定义接受包函数
#--------------------------------------------------------------------------#

def acceptserver():

    in_data=raw_input('1为接收端')
    if in_data=='1':
        logfile('%s  DB为1,瓦咔咔,我要变成为发送方啦\n'%(time.ctime()))
        sendserver()
    else:
        s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
        s.bind((loaclhost_ip,3999))
        while 1:
            print "等待数据中。。。。"
            d,a=s.recvfrom(1024)
            if a[0]=='127.0.0.1':   #判断ip,不让他设置为127.0.0.1
                windows_msg(" 'setting.ini'中的'GLOBAL'的字段不能设置为127.0.0.1",'警告')
                sys.exit()
            else:
                print '等来的数据',d,'来自',a,time.ctime()
                logfile('%s  等来的数据,%s,来自,%s\n'%(time.ctime(),d,a))

                if d==loaclhost_ip:
                    
                    print d,'是我的IP',"瓦咔咔,我要变成为发送方啦",time.ctime()
                    logfile('%s %s是我的IP,瓦咔咔,我要变成为发送方啦\n'%(time.ctime(),d))
                    sendserver()



acceptserver()




分享到:
评论

相关推荐

    python实现udp服务器和客户端简单例子

    Python 提供了 socket 模块来实现网络通信,包括 UDP 的服务器和客户端编程。下面我们将深入探讨如何使用 Python 实现 UDP 服务器和客户端。 首先,我们来看 UDP 服务器的实现。在 Python 中,创建一个 UDP 服务器...

    Python编写的简单的UDP和TCPSocket连接的客户端-服务器程序

    在给定的文件中,包括了TCP服务器(TCPServer.py)、UDP客户端(UDPClient.py)、UDP服务器(UDPServer.py)和TCP客户端(TCPClient.py),它们分别展示了如何在Python中实现这两种协议的客户端-服务器架构。...

    基于python的UDP服务端客户端代码

    总结来说,这个项目涵盖了Python的UDP服务器和客户端编程,以及串口通信的基本用法,为学习者提供了一个很好的实践平台。通过理解并运行这些代码,你可以深入理解UDP协议的工作原理,以及如何在Python中实现网络和...

    一个基于Python写的OPC UA客户端例子

    标题中的“一个基于Python写的OPC UA客户端例子”是指使用Python编程语言实现的OPC统一架构(OPC UA)客户端程序。OPC UA是一种开放的标准,用于设备与应用程序之间的安全、可靠的数据交换,广泛应用于工业自动化...

    udp.zip_UDP_udp client_udp服务器与客户端

    在这个“udp.zip”压缩包中,我们看到涉及了UDP客户端和服务器的实现,这将帮助我们理解如何在实际应用中使用UDP协议。 首先,UDP客户端是发起通信的一方,它会发送数据包到预设的IP地址和端口号。在UDP客户端的...

    python操作同花顺客户端下单程序

    通过python操作同花顺客户端下单程序。在win7,python2.7,pywinauto0.6.5,同花顺网上股票交易系统5.0环境下测试通过。

    python socket 实现服务器与客户端多线程连接

    在实际项目中,你可能需要根据具体需求调整服务器和客户端的逻辑,例如添加错误处理、数据解析、加密传输等。同时,考虑到资源管理,记得在完成通信后关闭socket连接。 总的来说,Python的socketserver模块为开发多...

    python 写的服务器

    它允许服务器和客户端在建立连接后实时交换数据,常用于在线游戏、实时聊天室或股票报价等应用。 对于文件服务器,Python可以利用ftplib库实现FTP服务器,或者使用PyFileServer这样的第三方库,提供基于HTTP的文件...

    FTP 服务器和客户端程序

    本篇将深入探讨FTP服务器和客户端程序的工作原理、配置及应用。 一、FTP服务器 FTP服务器是提供文件存储和访问服务的软件,它监听特定的网络端口(默认21),等待客户端的连接请求。当客户端连接到服务器后,服务器...

    python3实现UDP协议的服务器和客户端

    利用Python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了。 UDP:用户数据报协议,是一个...

    Python UDP\IP通信服务器与客户端

    在提供的文件tsUserv3.py和tsUclnt3.py中,分别代表了服务器(Server)和客户端(Client)的实现。以下是对这两个文件中可能包含的知识点的详细说明: 1. **创建Socket对象**: - 在Python中,使用`socket.socket...

    用Python套接字实现服务器和客户端的一对多通信(简易的聊天程序)

    在本文中,我们将深入探讨如何使用Python的套接字库实现一个简单的聊天程序,该程序支持服务器与多个客户端之间的通信。这个系统的核心是利用套接字进行网络通信,并结合多线程来处理并发连接。 首先,我们要理解套...

    Python-aiohttp一个用于asyncio和Python的异步HTTP客户端服务器

    aiohttp支持WebSocket协议,允许服务器和客户端之间进行双向通信。这对于实时应用,如聊天室、游戏服务器或者股票行情推送等场景非常有用。通过`websockets`模块,可以方便地处理WebSocket请求和发送消息。 ### ...

    网络UDP服务器课程设计

    在本课程设计中,我们将深入探讨“网络UDP服务器”的实现,这是一个基于用户数据报协议(UDP)的服务端程序。UDP是一种无连接的传输层协议,它不像TCP那样提供可靠的顺序交付和错误校验,而是以较低的延迟和较高的...

    python pygame实现的简单的网游服务器端和客户端

    在这个项目中,"python pygame实现的简单的网游服务器端和客户端",我们看到了一个基于Pygame构建的简单网络对战游戏的实现。 首先,让我们深入了解Pygame的基础。Pygame是Python的一个模块集合,它提供了丰富的...

    基于python的UDP服务器代码

    使用python代码编写的服务器系统,采用的是UDP协议和socket技术,调试可用。

    Python 通过 socket 实现服务端和客户端相互间网络通信的例子

    它允许程序创建和使用网络连接,使得服务器端和客户端能够交换数据。本例中,我们探讨的是如何使用Python的socket库创建一个简单的服务端(server.py)和客户端(client.py)来实现双向通信。 1. **Python socket...

    linux下基于UDP的广播服务器和客户端

    在Linux环境下,构建基于UDP(用户数据报协议)的广播服务器和客户端是一项常见的网络编程任务。UDP是一种无连接的传输层协议,它不保证数据的可靠传输,但因其高效、简单而广泛应用于需要实时性或者容错能力较高的...

    Python 聊天室 程序 客户端 服务端

    在Python编程领域,创建聊天室程序是学习网络通信和多线程等概念的良好实践。本项目包含客户端(Client.py)和服务端(Server.py),适用于初学者掌握基础的网络编程技能。我们将深入探讨这两个核心文件以及相关知识...

Global site tag (gtag.js) - Google Analytics