概述
目 录
第一章 Python语言的面向对象编程思想 1
第一节 Python语言面向对象编程概述 1
第二节 Python的历史和发展 1
第三节 Python的主要功能 2
第二章 Python语言的线性编程思想 4
第三章 Python语言的Socket编程思路 6
第一节 通讯程序的通信协议 6
1.1 UDP协议 6
1.2 TCP/IP协议 7
第二节 基本套接字(Socket) 8
2.1 套接字(Socket)基本概念 8
2.2 套接字(Socket)连接过程 9
第三节 通讯程序的模型 11
3.1 P2P模型 11
3.2 客户端/服务器模型 12
第四章 程序的设计及实现思路 13
第一节 需求分析 13
1.1功能需求 13
1.2性能需求 13
第二节 系统设计目标 14
第三节 功能模块划分 14
第四节 功能模块的说明 15
4.1 初始化(广播用户信息) 15
4.2 文本信息传输 15
第五节 系统实现具体流程 15
5.1 发送和接收广播的线程设计流程 15
5.2 监听端口建立连接的线程设计流程 16
5.3 命令处理线程的主要控制命令及其设计流程 16
第五章 系统功能实现 18
第一节 主界面 18
第二节 聊天界面 19
第三节 系统测试 19
第五章 结论 21
参考文献 22
致 谢 23
1.2性能需求
首先要求程序要完全可靠,可以应付种种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。
其次,程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。
再次,开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。
最后要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。
第二节 系统设计目标
随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流 方式已经难以满足人们的交流要求,在互联网或局域网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。作为整个计算机网络的基础,局域网用户之间进行即时通讯的需求更大,而且他们之间进行文件传输与共享的频率更高,因此有必要设计一款专门为局域网用户使用的即时通讯软件。
当前存在的即时通讯软件很多,但其中很多一部分由于嵌入了太多的娱乐功能而不很实用。对于局域网用户来说,首先,由于他们之间进行通讯的不确定性和随机性,所以如果专门为他们建立一个服务器端的话,势必会造成很大的浪费,因此,本软件选择实用点对点服务模式,不需要服务器支持。其次,局域网用户之间进行交流的主要方式就是文字信息交流,因此,本软件实现的最基本的功能就是文字信息的传输。再次,局域网用户要频繁的进行文件的传输,所以本软件还实现了两个局域网用户之间文件的传输。最后,由于采用跨平台的C++类库Python4.8进行开发,因此本软件实现在不同的操作系统上运行,具有友好美观的界面。
在非功能需求方面,在开发软件时,考虑系统的安全性,采用了安全的设计理念,防止了“黑客”入侵后的盗窃行为,同时也遏制了病毒程序的攻击。系统主要应用于局域网中,解决局域网内信息公告、信息交流、文件传送等问题。考虑软件的“通用性”,“可扩展性”,“相对独立性”等方面问题,实现软件开发的灵活性。
第三节 功能模块划分
本设计可以实现局域网内用户的自动检测,用户之间的个人信息管理,文字信息交流, 文件传输等功能。据此,本设计的功能模块一共可以分为5个:广播用户信息,个人信息管理,用户列表管理,文字信息传输。系统的总体功能模块图如图3.1所示:
图4.1 系统总体功能模块图
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 3 'Fixed Dialog
Caption = "TCP客户端"
ClientHeight = 7125
ClientLeft = 5670
ClientTop = 2985
ClientWidth = 7260
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 7125
ScaleWidth = 7260
ShowInTaskbar = 0 'False
Begin VB.VScrollBar VScroll1
Height = 3135
Left = 3120
TabIndex = 12
Top = 2760
Width = 375
End
Begin VB.CommandButton Cquit
Caption = "退出"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2760
TabIndex = 11
Top = 6360
Width = 1815
End
Begin VB.CommandButton Csend
Caption = "发送"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 4680
TabIndex = 10
Top = 5400
Width = 1455
End
Begin VB.TextBox textstatus
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 960
TabIndex = 8
Top = 1920
Width = 5295
End
Begin VB.TextBox textsend
Height = 2295
Left = 3960
TabIndex = 7
Top = 2760
Width = 2775
End
Begin VB.TextBox textrec
Height = 3135
Left = 600
TabIndex = 6
Top = 2760
Width = 2895
End
Begin VB.CommandButton Cclosed
Appearance = 0 'Flat
Caption = "断开连接"
CausesValidation= 0 'False
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 5
Top = 1080
Width = 1455
End
Begin VB.CommandButton Cconnect
Caption = "连接"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1440
TabIndex = 4
Top = 1080
Width = 1455
End
Begin VB.TextBox textport
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4080
TabIndex = 1
Top = 240
Width = 2175
End
Begin VB.TextBox textip
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 840
TabIndex = 0
Top = 240
Width = 2175
End
Begin VB.Label Label3
Caption = "状态"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 360
TabIndex = 9
Top = 2040
Width = 495
End
Begin VB.Label Label2
Caption = "端口"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 3480
TabIndex = 3
Top = 360
Width = 495
End
Begin VB.Label Label1
Caption = "地址"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 240
TabIndex = 2
Top = 360
Width = 495
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
最后
以上就是无情香烟为你收集整理的基于Python通信程序的设计与实现的全部内容,希望文章能够帮你解决基于Python通信程序的设计与实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复