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