实验九 Linux网络编程(报告)

实验九 Linux网络编程(报告)

ID:48263641

大小:18.21 KB

页数:4页

时间:2019-12-04

实验九 Linux网络编程(报告)_第1页
实验九 Linux网络编程(报告)_第2页
实验九 Linux网络编程(报告)_第3页
实验九 Linux网络编程(报告)_第4页
资源描述:

《实验九 Linux网络编程(报告)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验九Linux网络编程(4课时)实验目的:了解嵌入式网络开发环境的组成,掌握嵌入式网络程序设计实验原理:linux网络编程是通过socket(套接字)接口实现,socket是一种文件描述符,socket起源于UNIX,在Unix一切皆文件的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个socket"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。socket类型   常见的socket有3种类型如下。    (1)流式socket

2、(SOCK_STREAM)    流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。    (2)数据报socket(SOCK_DGRAM)    数据报套接字定义了一种无连接的服,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP。    (3)原始socket(SOCK_RAW)   原始套接字允许对底层协议如IP或ICMP进行直接访问,功能强大但使用较为不便,主要用于一些协议的开发。网络编程主要函数:1.socket:创建一个s

3、ocketintsocket(intfamily,inttype,intprotocol);//family指定协议族;type参数指定socket的类型:SOCK_STREAM、SOCK_DGRAM、SOCK_RAW;protocol通常赋值"0",socket()调用返回一个整型socket描述符。2.bind:用于绑定IP地址和端口号到socketintbind(intsockfd,structsockaddr*my_addr,intaddrlen);//sockfd是一个socket描述符,my_addr是一个

4、指向包含有本机IP地址及端口号等信息的sockaddr类型的针;addrlen常被设置为sizeof(structsockaddr),bind()函数在成功被调用时返回0;遇到错误时返回"-1"并将errno置为相应的错误号。3.connect:该函数用于绑定之后的client端,与服务器建立连接intconnect(intsockfd,structsockaddr*serv_addr,intaddrlen);//sockfd是目的服务器的sockect描述符;serv_addr是服务器端的IP地址和端口号的地址,ad

5、drlen常被设置为sizeof(structsockaddr)。遇到错误时返回-1,并且errno中包含相应的错误码。4.listen:设置能处理的最大连接数,listen()并未开始接受连线,只是设置sockect为listen模式。intlisten(intsockfd,intbacklog);//sockfd是socket系统调用返回的服务器端socket描述符;backlog指定在请求队列中允许的最大请求数。5.accept:用来接受socket连接intaccept(intsockfd,structsock

6、addr*addr,int*addrlen);//sockfd是被监听的服务器socket描述符,addr通常是一个指向sockaddr_in变量的指针,该变量用来存放提出连接请求的客户端地址;addrten通常为一个指向值为sizeof(structsockaddr_in)的整型指针变量。错误发生时返回一个-1并且设置相应的errno值。6.send:发送数据intsend(intsockfd,constvoid*msg,intlen,intflags);//sockfd是你想用来传输数据的socket描述符,msg

7、是一个指向要发送数据的指针。len是以字节为单位的数据的长度。flags一般情况下置为0。7.recv:接受数据intrecv(intsockfd,void*buf,intlen,unsignedintflags);//sockfd是接受数据的socket描述符;buf是存放接收数据的缓冲区;len是缓冲的长度。flags也被置为0。recv()返回实际上接收的字节数,或当出现错误时,返回-1并置相应的errno值。8.sendto:发送数据,用于面向非连接的socket(SOCK_DGRAM/SOCK_RAW)int

8、sendto(intsockfd,constvoid*msg,intlen,unsignedintflags,conststructsockaddr*to,inttolen);//该函数比send()函数多了两个参数,to表示目地机的IP地址和端口号信息,而tolen常常被赋值为sizeof(structsockaddr)。sen

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

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

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