目标:实现发送端和接收端互相变身
分为 接收端
发送端
设定可以互相变身的两台机器的 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 提供了 socket 模块来实现网络通信,包括 UDP 的服务器和客户端编程。下面我们将深入探讨如何使用 Python 实现 UDP 服务器和客户端。 首先,我们来看 UDP 服务器的实现。在 Python 中,创建一个 UDP 服务器...
总结来说,这个项目涵盖了Python的UDP服务器和客户端编程,以及串口通信的基本用法,为学习者提供了一个很好的实践平台。通过理解并运行这些代码,你可以深入理解UDP协议的工作原理,以及如何在Python中实现网络和...
标题中的“一个基于Python写的OPC UA客户端例子”揭示了我们即将探讨的是如何使用Python编程语言来实现OPC UA( OPC统一架构)客户端的应用。OPC UA是一种工业通信标准,它提供了一种安全、可靠的方式来交换工业自动...
在这个“udp.zip”压缩包中,我们看到涉及了UDP客户端和服务器的实现,这将帮助我们理解如何在实际应用中使用UDP协议。 首先,UDP客户端是发起通信的一方,它会发送数据包到预设的IP地址和端口号。在UDP客户端的...
通过python操作同花顺客户端下单程序。在win7,python2.7,pywinauto0.6.5,同花顺网上股票交易系统5.0环境下测试通过。
udp协议的python程序,可以方便的测试udp打洞的工程
本题目的重点是利用Python的`socket`库来创建一个简单的TCP服务器和客户端,以便进行双向通信。 首先,我们要了解`socket`库在Python中的作用。`socket`库提供了一种低级别的接口,用于创建套接字对象,这些对象...
它允许服务器和客户端在建立连接后实时交换数据,常用于在线游戏、实时聊天室或股票报价等应用。 对于文件服务器,Python可以利用ftplib库实现FTP服务器,或者使用PyFileServer这样的第三方库,提供基于HTTP的文件...
在本文中,我们将深入探讨UDP客户端和服务器的工作原理,以及如何编写简单的UDP客户端服务器程序。 首先,理解UDP的基本特性至关重要。与TCP(Transmission Control Protocol)不同,UDP不建立连接也不保证数据包的...
在标签“基本的客户和服务器程序”中,我们可以推断这个任务可能是教学或练习的一部分,目的是让学习者理解网络通信的基础流程。在这个任务1(task1)中,可能包含了编写和运行这两个程序的步骤,以及可能遇到的问题...
利用Python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了。 UDP:用户数据报协议,是一个...
在提供的文件tsUserv3.py和tsUclnt3.py中,分别代表了服务器(Server)和客户端(Client)的实现。以下是对这两个文件中可能包含的知识点的详细说明: 1. **创建Socket对象**: - 在Python中,使用`socket.socket...
aiohttp支持WebSocket协议,允许服务器和客户端之间进行双向通信。这对于实时应用,如聊天室、游戏服务器或者股票行情推送等场景非常有用。通过`websockets`模块,可以方便地处理WebSocket请求和发送消息。 ### ...
在本课程设计中,我们将深入探讨“网络UDP服务器”的实现,这是一个基于用户数据报协议(UDP)的服务端程序。UDP是一种无连接的传输层协议,它不像TCP那样提供可靠的顺序交付和错误校验,而是以较低的延迟和较高的...
在这个项目中,"python pygame实现的简单的网游服务器端和客户端",我们看到了一个基于Pygame构建的简单网络对战游戏的实现。 首先,让我们深入了解Pygame的基础。Pygame是Python的一个模块集合,它提供了丰富的...
在这个项目中,学生需要构建一个服务器程序,该服务器能够同时处理来自多个客户端的连接请求,这是多线程或多进程编程的一个典型应用场景。服务器需要监听特定端口,一旦有客户端连接,就创建一个新的线程或进程来...
在IT领域,服务器端和客户端程序是构建网络应用的基础组件,它们共同构成了互联网服务的核心架构。这个主题将深入探讨这两个概念以及它们之间的交互过程。 首先,我们要了解什么是服务器端。服务器端,通常指的是...
它允许程序创建和使用网络连接,使得服务器端和客户端能够交换数据。本例中,我们探讨的是如何使用Python的socket库创建一个简单的服务端(server.py)和客户端(client.py)来实现双向通信。 1. **Python socket...
在Linux环境下,构建基于UDP(用户数据报协议)的广播服务器和客户端是一项常见的网络编程任务。UDP是一种无连接的传输层协议,它不保证数据的可靠传输,但因其高效、简单而广泛应用于需要实时性或者容错能力较高的...