TCPIP网络通信软件的设计
- 格式:ppt
- 大小:273.50 KB
- 文档页数:18


TCP/IP网络通信程序设计
本文介绍了TCP/IP网络应用程序的面向对象设计方法,并给出了用Visual
C++4.2
中MFC在Windows 95环境下开发的程序实例。
1 Sockets与Winsock 95
Winsock 95是在Unix Sockets及Windows Sockets基础上发展起来的。Sockets原
是BSD为了Unix支持互联网通信而设计的4.3BSD Unix版本中的API,它采用客户-服务器
模式的通信机制,使网络客户方和服务器方通过Sockets实现网络之间的联接和数据交
换;Win dows Sockets描述定义了一个Microsoft Windows的网络编程界面,它为
Windows TCP/IP 提供了一个BSD型套接字,除与4.3BSD Unix Sockets完全兼容外,还
包括一个扩充文件,通过一组附加的API实现Windows式(即事件驱动)的编程风格;而
Winsock 95则是在Microsoft Windows 95中进行网络应用程序设计的接口。Windows 95
在Internet支配域中的TCP /IP协议定义了Winsock 95网络编程规范,溶入了许多新特点。
MFC中提供了相应的CSock et类来实现网络通信。
2 Sockets编程原理
Sockets同时支持数据流Sockets和数据报Sockets。
下面是利用Socket进行通信连接的过程框图。其中图1是面向连接的时序图,图2是
无连接的时序图。
图1
图2
由图可以看出,客户与服务器的关系是不对称的。对于TCP C/S,服务器首先启动,
然后在某一时刻启动客户与服务器建立连接。服务器与客户开始都必须调用socket()
建立一个套接字socket,然后服务器调用bind()将套接字与一个本地网络地址捆扎在一
第一章
1、通信就是在两个或多个实体之间传递或交换信息
2、通信的要素:通信实体(自然人、计算机、通信中断等)、传输信道(电路、无线信道、卫星信道、计算机网络等)、交换网络(PSTN、INTERNET等)、通信协议(七号信令、TCP/IP、SIP等)
3、通信的分类:
1、基于连接的通信(需要在通信实体之间建立通信连路或连接,如电话、传真等)
2、基于无连接的通信(在通信实体之间不需要建立通信链路或连接,如短信、即时消息等)
4、通信软件:能够实现在两个或多个实体(计算机、电信终端、交换设备等)之间传递或交换信息功能的软件称为通信软件
5、通信软件的特点:
1、基于通信协议或者信令系统
2、运行时间长(电信软件)
3、基于有限状态机
4、大部分是嵌入式软件
6、通信协议:在计算机网络中,为了在两个或多个通信实体之间准确、完整地交换信息,必须对信息交换的顺序和条件、交换信息的格式和内容等做出约定,这一整套约定就称为通信协议
7、通信软件开发过程
1、需求分析—解决“做什么”问题
分析用户要求、系统与外界交互信息情况和软件运行环境等
2、概要设计—解决“系统架构”问题
设计系统结构、模块间信息交互情况以及数据结构等
3、详细设计—解决“如何做”问题
描述系统行为、制定测试计划等
4、代码生成—解决“系统实现”问题
代码自动生成、人工编码、编译调试、系统生成
第二章
1、协议开发过程
1、开发新的协议(协议环境分析、协议功能设计、协议元素设计、形成协议文本、协议描述、协议验证)
2、实现具体协议(协议分析、协议设计、协议描述、协议验证、协议实现、协议测试、协议维护)
3、两者最大的区别:
1、开发新的协议是从无到有,产生一个新的协议。成果是协议标准文本,具有可实现性
2、实现具体协议时在具体应用环境下实现一个协议。成果是协议软件,具有可运行性、可维护性的特点
中国科学技术大学 多媒体技术与网络通信实验室(copyright 1999)
TCP/IP通信程序设计实验
一、实验目的
初步掌握C语言TCP/IP通信程序的设计。
二、预备知识
了解DOS、Windows、Linux/Unix等不同操作系统下的TCP/IP编程环境。
学习TCP/IP编程接口──Socket函数调用。
三、实验操作
选择一个操作系统环境(Linux或者WindowsNT),编制TCP/IP通信程序,完成一定的
通信功能。
可选择以下功能之一,或者自行设计:
1. 单人实验,编一个程序和Unix的系统服务进行通信。如daytime(port 13)、echo(port7)
服务等。
2. 双人搭配实验,两人选择不同的操作系统环境,各编写一个程序,使用TCP/IP协议
进行相互之间的发送和接收,如两人talk。
四、实验要求
仔细阅读本实验讲义,对照示例,首先弄清楚各个函数的意思,读懂例子,然后再开始
编制自己的程序。如认为有必要,可以先将例子编译通过。注:NT服务器上只存有WINDOWS
下的样本程序(chat目录下的聊天程序chat)。
这里给出的例子只是基本的要求,请尽可能地发挥你的创造性,写出富有个性的程序。
在你的程序中,每个Socket函数第一次出现的地方,以及其它能够反映Socket编程特点的
地方,和你富有创意的地方,请加上比较清楚的注释(中英均可)。
每次实验结束后,请将你的源代码备份到MMC中,用比较醒目的目录存放,如~/socket
等。实验报告要求详细介绍你的程序所实现的功能,以及你精心考虑过的任何独特之处,并
完成思考题。
五、思考题
解释connect()、bind()等函数中struct sockaddr *addr参数各个部分的含义,并用具体的数据举例说明。
如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ cxh@
基于TCP/IP的局域网聊天室的
设计与实现
i
摘 要
随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。所以本文提出了一个更加合理的设计,并在WINDOWS平台上加以了实现.在本实现内将客户端和服务端综合在一个程序之内,用多线程实现不同的并行任务。并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。本文通过局域网聊天系统来具体共享内存实现进程间的数据交换,利用windows消息机制实现进程间的同步,两种机制结合使用。局域网聊天室作为一种新型的聊天工具可以提供更为及时、可靠、突破了必须有外界网络接入等优点,具有极其广泛的发展前景。
本文介绍了采用JAVA编程开发局域网聊天系统的一套比较常用的解决方案。采用TCP模式进行文字聊天, 在客户端之间点对点(C/C)的进行。本系统采用典型的C/S(客户端/服务器)的框架模式,在该方案中采用Socket(套接字)原理实现网络通信,最终实现了通过服务器中转的文字聊天、文件传输功能,从而大大降低了程序的开发难度。本系统主要包括登陆、聊天、好友列表和服务器管理几个部分。本系统从需求分析、系统的设计、功能的实现都严格遵循了软件工程设计的思想。
【关键词】Socket;TCP/IP;C/S;局域网聊天室
ii
Abstract
With the development of computer network technology, a variety of Web-based
applications also will be the birth, such as Internet-based information release,