Linux网络应用程序设计

时间:2022-05-20 10:21:55

Linux网络概述

Linux为用户提供了完善的、强大的网络功能。
1.完善的内置网络。其他操作系统不包含如此紧密地和内核结合在一起的网络部分。
2.Linux免费的提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux时相当      方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。
3.用户能通过一些Linux命令完成内部信息或文件的传输。
4.远程访问。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效的为多个系统服务,即使那些系统位于相距很远的地方。
5.安全可靠。Linux采取了很多安全可靠的措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。 Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计


Linux网络编程基础

Socket:Linux中的网络编程通过Socket(套接字)实现,Socket是一种文件描述符。
类型 socket有三种类型: (1)流式套接字(SOCK_STREAM),流式套接字提供可靠的、面向连接的通讯流,它使用TCP协议。TCP保 证了数据传输的正确性和顺序性。 (2)数据报套接字(SOCK_DGRAM),数据包套接字定义了一种无连接的服务,数据通过相互独立的报文进 行传输,是无序的,并且不保证了,无差错,它使用数据报协议UDP。 (3)原始套接字(SOCK_RAW),原始套接字允许使用IP协议,主要用于新的网络协议测试等。 
网络地址 在socket程序设计中struct socketaddr用于记录网络地址: struct socketaddr { u_short sa_family; char sa_data[14]; } sa_family:协议族,采用“AF_xxx”的形式,如:AF_INET(IP协议族) sa_data:14字节的特定协议地址。
地址结构 在socket程序设计中,struct sockaddr_in同样用于记录网络地址 struct sockaddr_in { short int sin_family;/*协议族*/ unsigned short int sin_port;/*端口号*/ struct in_addr sin_addr;/*协议特定地址*/ unsigned char sin_zero[8];/*填0*/ } 编程中一般使用与sockaddr等价的sockaddr_in数据结构。 Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计



TCP网络程序设计

基于TCP-服务器 (1)创建一个socket,用函数socket() (2)绑定IP地址、端口等信息到socket上,用函数bind() (3)设置允许的最大连接数,用函数listen() (4)等待来自客户端的连接请求,用函数accept() (5)收发数据,用函数send()和recv(),或者read()和write() (6)关闭网络连接
基于TCP-客户端 (1)创建一个socket,用函数socket() (2)设置要连接的服务器的IP地址和端口等属性 (3)连接服务器,用函数connect() (4)收发数据,用函数send()和recv(),或者read()和write() (5)关闭网络连接 Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计



UDP网络程序设计

基于UDP-服务器 (1)创建一个socket,用函数socket() (2)绑定IP地址、端口等信息到socket上,用函数bind() (3)循环接收数据,用函数recvfrom() (4)关闭网络连接
基于UDP-客户端 (1)创建一个socket,用函数socket() (2)绑定IP地址、端口等信息到socket上,用函数bind() (3)设置对方的IP地址和端口等属性 (4)发送数据,用函数sendto() (5)关闭网络连接 Linux网络应用程序设计

Linux网络应用程序设计

Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计


并发服务器

服务器模型: 在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器的模型有:(1)循环服务器,服务器在同一个时刻只能响应一个客户端的请求;(2)并发服务器,服务器在同一个时刻可以响应多个客户端的请求。 Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计
Linux网络应用程序设计