zoukankan      html  css  js  c++  java
  • 作业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.服务器与网页的展示

  • 相关阅读:
    推荐一个golang的json库
    TinyMind 多标签图像分类竞赛 之路
    动态环境下的slam问题如何解决?
    ubuntu16.04下安装opencv3.4.1及其扩展模块
    Ubuntu 16.04 编译OpenCV 问题解决stdlib.h: No such file or directory
    linux下升级gcc版本(gcc-7)
    基于LSD的直线提取算法
    PL-SLAM
    用U盘制作并安装WIN10 64位原版系统的详细教程(该方法应该适用于任何一版的原版操作系统)
    Win10正式版U盘安装教程
  • 原文地址:https://www.cnblogs.com/mountainking/p/3405876.html
Copyright © 2011-2022 走看看