欢迎来到天天文库
浏览记录
ID:34440605
大小:368.76 KB
页数:5页
时间:2019-03-06
《linux环境下基于tcp的socket编程浅析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据Linux环境下基于TCP的Socket编程浅析吴佩贤(绍兴文理学院计算机系浙江绍兴312000)摘要:Socket适用于同一台计算机上的进程间通信,同时也适用于网络环境中的进程间通信。他已成为当前许多操作系统的网络API,也是网络操作系统中必不可少的基础功能。因特网为网络中的应用提供了2种类型的服务:由TCP协议提供的面向连接服务和由UDP协议提供的无连接服务。随着Linux操作系统的不断推广,Linux环境下的Socket开发和研究一直是人们关注的热点。文章介绍了Linux平台下的Socket及其在TCP协议下的编程原理,并通过一个用Java编写的基于T
2、CP的客户/服务器程序,描述了网络中不同主机上的两个进程之间的Socket通信机制。关键词:Socket}TCP/IP;客户机/服务器;进程;Java中图分类号:TP316文献标识码:B文章编号:1004—373X(2005)16一053一03AnaIysisofSocketProgrammingTCP—basedonLinuxWUPeixian(ComputerScie眦eDepartment.ShaoxingUniversity,Shaoxi“g·312000,China)Abstract:socketissuitableforcommunicationbetw
3、eentwoprocessesnotonlyfromonecomputerbutalsofromnetwork.NowS0cketisanavailablenetwork—APIofmanyOS,atthesametime,itisonenecessarypartofnetwork—OS.Internetprovidesconnection—orientedservice(TCP—based)andconnectionlessservice(UDP—based).SocketdevelopmentandstudyingonLinuxarealwaysconcerne
4、dwhileLinuxisinnovatedonandon.ThepaperintroducestheSocketandit7sprogrammingprinciplebasedonTCPinLinuxenvironment.ByusingaTCP—basedclient/serverprogramwhichiseditedinJava,itdescribesSocketcommunicationmechanismbetweenthetwoprocessesfromthedi“erentcomputersinthenetwork.Keywords:Socket,TC
5、P/IP,client/serverIprocess;JavaLinux是一个诞生于Internet和WWW的产品,他和网络密切相关。Linux网络系统具有稳定、简易、高效、兼容性好等特点,并且支持多种网络协议,如IPv4,IPv6,X.25,IPX,NETBIOS,DDP等。套接字(Socket)是介于网络应用层和传输层之间的编程接口,套接字接口提供了访问下层通信协议的大量系统调用和相应的数据结构。在Linux中,套接字接口是应用程序访问下层的网络协议的惟一方法。具体讲,套接字在用户级实现了两个应用程序之间的网络连接和数据交换,所以Linux中的套接字意味着网络上
6、的连接。套接字在TCP/IP网络模型中的地位如图l所示。应用层网络层互联层物理层图1收稿日期l2005—04一05套接字1BSD套接字接口socket接口是为方便开发人员进行TCP/IP程序开发,而为TCP/IP协议所制定的一组应用程序接口。由于他最早应用于伯克莱大学的BSDUnix中,所以习惯上又称其为BSDSocket(简称BSD)。一个套接字描述为一个通信连接的一端,在一个通信连接中的两端通信程序应各自有一个套接字来描述他们自己那一端,不同主机中的两个进程通过各自的套接字发送和接收消息,从而实现进程间跨网络的通信。Linux的套接字支持多种网络协议,不同类型网
7、络协议的工作方式不同,所使用的地址格式也完全不同。对于各种网络协议而言,使用相同地址格式的几个协议称为一个协议地址簇,表1列出了BSD套接字的常见地址簇。表lBSD套接字地址簇的主要类型地址簇类型时应的通信协议AF—INETAF—IPXAF—UNIXAF—AX25AF—APPLETALKTCP/IP协议NoveUIPX协议Unix内部套接字Ax.25协议套接字APPLETALKDDS(Macintosh机器用)Linux将套接字地址簇抽象为统一的BSD套接字接53万方数据口,该接口是应用程序的开发接口,由各地址簇专有的软件支持。LinuxBSDSocket支持以
此文档下载收益归作者所有