Linux 局域网聊天项目设计方案书 项目题目: Linux 局域网聊天系统 项目成员: 李正兴 唐炜 曹永胜 张灯 项目班级: 090301C 项目时间: 09
1---—09
12 指导老师: 廖 卫 东 1
项目背景介绍 1
1 套接字介绍 套接字(Socket)起初来源于 UNIX,是加利福尼亚大学 Berkeley 分校开发的 UNIX 操作系统下的网络通信接口
随着 UNIX 操作系统 的广泛使用,Socket 亦当之无愧的成为了最流行的网络通信程序接口之一
套接字存在于其特定的通信域(即地址族)中,只有隶属于同一地址族的套接字才能建立对话,Windows Sockets V1
0 目前只支持网际域(AF_INET),所有使用网际协议簇的进程均适用于该域
一般情况下除非通信协议支持,只有相同类型的套接字方能相互传递数据,Windows Sockets V1
1 版主要支持两种类型的套接字:流式套接字和数据报套接字,还有一种是原始套接字,但为保证网络应用程序的兼容性,一般不鼓励使用原始套接字
式套接字(SOCK_STREAM):该类套接字提供了面向连接 的、可靠的、数据无错并且无重复的数据发送服务
而且发送的数据是按顺序接收的
所有利用该套接字进行传递的数据均被视为连续的字节流的并且无长度限制
这对数据的稳定性、正确性和发送/ 接受顺序要求严格的应用十分适用,TCP 协议使用该类接口
但其对线路的占用率相对提高
流式套接字的实现屡见不鲜,如远程登录(TELNET)、文件传输协议(FTP)等均使用了流式套接字
数据报式套接字(SOCK_DGRAM):数据报式套接字提供了面向无连接的服务 , 它独立的数据包形式发送数据( 数据包长度不能大于 32KB),不提供正确性检查,也不保证各数据包的发送顺序,因此,可能出现数据的重发、丢失等现象,并且接收顺序