linux下网络socket编程技术new

linux下网络socket编程技术new

ID:34512502

大小:125.91 KB

页数:4页

时间:2019-03-07

linux下网络socket编程技术new_第1页
linux下网络socket编程技术new_第2页
linux下网络socket编程技术new_第3页
linux下网络socket编程技术new_第4页
资源描述:

《linux下网络socket编程技术new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、维普资讯http://www.cqvip.com2005年第2期通信与广播电视5lLinux下网络Socket编程技术吴祖民赵勇一杨仁庆一摘要Linux作为一个完全开放其原代码的免费的自由软件,兼容了各种UNIX标准(如POSIX、UNIXSystemV和BSDUNIX等)的多用户、多任务的具有复杂内核的嵌入式操作系统。Linux下网络编程得到很非常广泛的应用,本文介绍的Linux下网络Socket的基本概念和函数调用。关键词:socketconnectlistenacceptcloseread

2、writeSocketProgranuningunderLinuxWuZhuminZhaoYongYangRenqingAbstractAsafulysource—codeopenedandfreesoftware.LinuxiscompatiblethallkindsofUNIXstandardslikePOSIX,UNIXsystemVandBSDUNIX,etc.thatistosaytheLinuxownsacompatiblemulti—users,multi—taskssophist

3、icatedembeddedoperatingsys—tern.ThenetworkprogrammingunderLinuxhasfoundwideapplications.ThepaperwillpresentsthebasicconceptandfunctionrecallingoftheSocketunderLinux.Keywords:socketconectlistenacceptclosereadwriteSocket(套接字)是通过标准的UNIX文件描述符和其它程序通信的一个方法

4、。每一个套接字都用一个半相关描述;{协议,本地地址、本地端口}来表示;一个完整的套接字则用一个相关描述:{协议,本地地址、本地端口、远程地址、远程端口},每一个套接字都有一个本地的由操作系统分配的唯一的套接字号。Socket的三种类型:流式Socket(SOCK—STREAM),提供可靠、面向连接的通信流,使用TCP协议,保证了数据传输的正确性和顺序;数据报Socket(SOCK—DGRAM),它定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,不保证可靠、无差错。它使用数据报协

5、议UDP协议;原始Sock—et,它允许对底层协议如IP或ICMP直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。首先调用基本函数socket()创建一个套接字,函数为intsocket(intdomain,inttype,作者系熊猫军通四部助理工程师作者系熊猫军通四部助理工程师作者系熊猫军通四部助理工程师维普资讯http://www.cqvip.com52通信与广播电视2005年第2期intprotoco1),其中参数domain指定要创建的套接字的协议族,可以是如下值:AF—UN

6、IX(UNIX域协议族,本机的进程间通信时使用),AF—INET(Intemet协议族(TCP/IP),AF—ISO(ISO协议族);参数type指定套接字类型,可以是如下值:SOCK—STREAM(流套接字,面向连接的和可靠的通信类型),SOCK—DGRAM(数据报套接字,非面向连接的和不可靠的通信类型),SOCK_RAW(原始套接字,只对Intemet协议有效,可以用来直接访问IP协议);参数protocol通常设置成0,表示使用默认协议,如Internet协议族的流套接字使用TCP协议,而

7、数据报套接字使用UDP协议。函数connect()定义为intconect(intsockfd,structsoekaddrjIcservaddr,intaddrlen)参数sockfd是函数socket返回的套接字描述符;参数servaddr指定远程服务器的套接字地址,包括服务器的IP地址和端口号;参数addrlen指定这个套接字地址的长度。成功时返回0,否则返回一1。在调用函数connect之前,客户机需要指定服务器进程的套接字地址。客户机一般不需要指定自己的套接字地址(IP地址和端口号),

8、系统会自动从1024至5000的端口号范围内为它选择一个未用的端口号,然后以这个端口号和本机的IP地址填充这个套接字地址。客户机调用函数connect来主动建立连接。这个函数将启动TCP协议的3次握手过程。在建立连接之后或发生错误时函数返回。函数bind()将本地地址与套接字绑定起来,函数定义为intbind(intsockfd,structsockaddrjIcmyaddr,intaddrlen);参数sockfd是函数sockt返回的套接字描述符;参数myaddr是本地地址;参数addrle

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。