• 作业5


    一.思路

    队友:梁杰,夏天晗。

    这次作业的任务比较好分配。一个服务器,一个客户端,一个网页。我负责客户端的部分,其实并没多少难度,但是第一次用python写,还是遇到了许多问题,也向梁杰同学请教了许多。通信主要用socket完成,两部分:一个是建立通信,一个是根据传输格式协议修改发送和接受的具体内容。如果接收到的是wait的信息,则线程睡0.3秒,重新接收;如果接收到的是start信息,则发送数字信息给服务器。

    客户端还有一个小问题,就是第一步的注册问题,发送用户名和密码到服务器时,服务器会自动检测用户名有无重复,然后回馈信息。

    if s.recv(1024).split(' ')[0] == 'alreadyuse':
        print "ERROR: Username has been used! Please change another one!"
        exit(0)

    还有两种游戏模式,分别对应于接收到信息的“start1”和“start2”。

    elif recv_data[0] == 'start1':
            print "send my number"
            s.send('play %s %s %s' % (sys.argv[1], sys.argv[2], random.randint(0, 100)))
            s.recv(1024)
        elif recv_data[0] == 'start2':
            print "send my number"
            s.send('play %s %s %s %s' % (sys.argv[1], sys.argv[2], random.randint(0, 100), random.randint(0, 100)))
            s.recv(1024)

    二.心得

    这次作业难度低于上一次作业,却花了我们更多的时间。因为这已经算是一个小工程,需要不同的分工合作,我们采取先分后和的策略,一开始各自编的挺爽,一和起来的复杂度毫不逊色于各个子问题的复杂度。。在测试部分,我们仨花了好大的力气实现互联,主要问题是非常不稳定,开始连的好好的,游戏开始的时候始终连不上去,有时候甚至互相不能ping通。我们试着用了好多办法,路由器开无线,我们连路由器;直接连接路由器的wan端口;最后决定采取简单粗暴的手法:网线直连!不过也存在一点问题,我能ping通另一方,而另一方却不能ping通我这边。

    一个工程的复杂度渐渐体现出来,而且往往在细节上。

    三.效率分析

    捕获

    四.效果截图

    1.服务器与客户端的连接

    2.服务器与网页的展示

  • 相关阅读:
    github for window的代理设置方法
    深入理解ANGULARUI路由_UIROUTER
    HTML:document.activeElement
    Ubuntu 安装java环境搭建
    svn 服务器搭建
    nginx tomcat 动静分离
    mysql5.5 修改字符集
    ansible 安装
    基于apache的tomcat负载均衡和集群配置
    数据库值错误怎么改?
  • 原文地址:https://www.cnblogs.com/mountainking/p/3405876.html
Copyright © 2020-2023  润新知