曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。 是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。

用Python发送socket消息

上一篇 / 下一篇  2010-01-24 20:05:25 / 个人分类:脚本语言

开始整理一下简单的Python脚本,嗯嗯。


我们的系统是C/S架构,客户端是用Delphi开发的。
有一天,在客户端上操作“删除”时,反应比较慢,想知道是那个环节有问题,于是用Python写了一个发送消息的小程序,就是模拟客户端一发一收,再计算一下时间。如果这个时间比较快,那有可能是客户端软件处理消息有问题。
代码如下:
import socket
from timeit import Timer

HOST = '192.168.1.122'    # The remote host
PORT = 9898               # The same port as used by the server
ADDR=(HOST,PORT)
def myxmlTest():       
    tcpClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcpClient.connect(ADDR)
    f=open("f:/xmlTest.txt",'r')    #将发送"删除"的xml放在了硬盘文件里
    a=f.readline()
    MyMessage=bytes(a,encoding='utf8')
    #print(MyMessage)
    tcpClient.send(MyMessage)       
    data = tcpClient.recv(1024)     #接收到的消息
    f.close()
    tcpClient.close()
    print('Received', repr(data))
    
def main():
    _executecount=1                 #执行次数
    myTime=Timer("myxmlTest()","from __main__ import myxmlTest")
    x=myTime.timeit(_executecount)  #执行xxx次的时间
    
    print("the time is ",x/float(_executecount))
    
if __name__=='__main__':
    main()

其中_executecount是执行的次数,就是发送“删除”消息的次数,再用总时间除一下,就是平均的时间。
最后得出结论,从客户端直接发消息到客户端从服务端接收返回的时间,是很快的,问题可能出在客户端上面。

TAG:

tulip_2005的个人空间 引用 删除 tulip_2005   /   2010-01-24 21:17:32
不懂python,不过把思路带走了,呵呵,留个脚印吧~!
 

评分:0

我来说两句

日历

« 2024-03-04  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 46080
  • 日志数: 33
  • 文件数: 1
  • 建立时间: 2009-07-10
  • 更新时间: 2010-12-07

RSS订阅

Open Toolbar