首页 > 代码库 > python socket模拟游戏开服

python socket模拟游戏开服

python socket服务端 

#!/usr/bin/python
#-*- coding: utf-8 -*-
import socket
import os,sys
host=‘127.0.0.1‘ #监听的IP
port=60000       #监听的端口
buffer=1024      #接受的字节数
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  #建立socket对象
sock.bind((host,port)) #绑定IP和端口
sock.listen(5)   #连接数量
def file_cp():
    file_cp=‘scp file_cp.py root@%s:/root/liu‘ %ip  
    if os.system(file_cp)==0:                        #拷贝脚本文件
        client.send("脚本传送成功!!!")
        cmd="ssh %s ‘python /root/liu/file_cp.py‘" %ip 
        if os.system(cmd)==0:
            client.send("对ip:%s开服成功!!" %ip)     #执行脚本文件
        else:
            client.send("对ip:%s开服失败!!" %ip)
    else:
        client.send("脚本传送失败!!!")
while True:
    client,addr=sock.accept()
    try:
        client.settimeout(5)  #客户端超时设置
        ip=client.recv(buffer) #接受来自客户端的命令
        if not ip:
           break
        else:
           if ip.startswith(‘-‘):
              option=ip
              if option ==‘-h‘:
                  client.send("对指定的IP开服执行python sock_client_yuancheng.py 192.168.3.207")
              elif option ==‘--help‘:
                  client.send("对指定的IP开服执行python sock_client_yuancheng.py 192.168.3.207")
              else:
                  client.send("输入参数错误!!!")
           elif ip==‘192.168.3.207‘:
                file_cp()
           elif ip==‘2‘:
              client.send("你输入的参数超过2个,请检查!!!")
           elif ip==‘null‘:
              client.send("你输入的参数为空,请检查!!!")
           else:
              client.send("你输入的命令不存在,请检查!!!")
    except socket.timeout:
        print ‘client time out!!!‘
        client.close()

python socket客户端

#!/usr/bin/python
#-*- coding: utf-8 -*-
import socket
import sys
host=‘127.0.0.1‘  #客户端连接服务端的IP
port=60000        #客户端连接服务端的端口
buffer=1024       #字节数
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((host,port))   #连接服务端
sock.settimeout(5)          #超时设置
while True:
   try:
      if len(sys.argv)==2: #判断链接的参数个数
         order=sys.argv[1]
         sock.send(order) #发送数据到服务端进行处理 
         recv=sock.recv(buffer) #接受服务端传来的数据
         print ‘%s‘ %recv
      elif len(sys.argv)>2:
         order=‘2‘
         sock.send(order)
         recv=sock.recv(buffer)
         print ‘%s‘ %recv
         break
      else:
         order=‘null‘
         sock.send(order)
         recv=sock.recv(buffer)
         print ‘%s‘ %recv
         break
   except socket.timeout:
        break
sock.close()

 

本文出自 “成都@阿状” 博客,请务必保留此出处http://azhuang.blog.51cto.com/9176790/1440200

python socket模拟游戏开服