E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux网络编程系列
Linux网络
编程 - 异步 I/O 的探讨
概念第一种是阻塞I/O。阻塞I/O发起的read请求,线程会被挂起,一直等到内核数据准备好,并把数据从内核区域拷贝到应用程序的缓冲区中,当拷贝过程完成,read请求调用才返回。接下来,应用程序就可以对缓冲区的数据进行数据解析。第二种是非阻塞I/O。非阻塞的read请求在数据未准备好的情况下立即返回,应用程序可以不断轮询内核,直到数据准备好,内核将数据拷贝到应用程序缓冲,并完成这次read调用。注意
囚牢-峰子
·
2020-08-08 19:02
Linux网络编程
Linux网络
编程 - C10K问题:高并发模型的设计初篇
C10K问题这一篇,借着C10K问题,系统地梳理一下高性能网络编程的方法论。C10K问题是这样的:如何在一台物理机上同时服务10000个用户?这里C表示并发,10K等于10000。得益于操作系统、编程语言的发展,在现在的条件下,普通用户使用JavaNetty、Libevent等框架或库就可以轻轻松松写出支持并发超过10000的服务器端程序,甚至于经过优化之后可以达到十万,乃至百万的并发。操作系统层
囚牢-峰子
·
2020-08-08 19:31
Linux网络编程
C10K问题本质
C10K解决方法
C10K阻塞I/O方法
CC10K非阻塞I/O方法
Linux网络
基础三:子网分析
一、基于IPv4地址格式的计算首先,对于任何子网,当得知主机位的位数时,就能够计算出该子网中主机IP地址的数量,其次,如果整个网络只使用一个掩码,那么得知该子网位的数量,就能计算出网络中子网的数量。IPv4地址的长度为32位,我用以下字母来代替各个专有名词,子网中的主机数:2^H-2,其中H为主机位的数量。网络中的子网数:2^S,其中S为子网位的数量。将子网掩码转换为CIDR格式,记为P。A类网络
mr.linshadow
·
2020-08-08 17:52
Linux运维
Linux网络
基础四:常见网络管理命令
Linux常见网络管理命令一、hostname:显示或者设置系统主机名1.语法hostname【选项】【参数】2.功能介绍hostname命令用来显示或者设置系统主机名。3.选项说明选项说明-a显示主机的别名-d显示主机的DNS域名-F从指定文件读取主机名-f显示完全合格的域名(FQDN),FQDN包括一个短的主机名和一个DNS域名两部分-i显示指定主机的IP地址-s仅显示以第一个点符号分割的完全
mr.linshadow
·
2020-08-08 17:52
Linux运维
Linux网络
基础设置
Linux网络
设置一、查看网络配置及配置命令1.ifconfig命令查看网络接口地址#ifconfig与ifconfig-a类似//查看所有网络接口信息#ifconfigens33//查看指定的网络接口信息
lailiqian_dremer
·
2020-08-08 17:39
Linux网络
编程--多线程实现echo服务器与客户端“一对多”功能,网络编程的“Hello World!” - 壮壮熊
在linux平台下,用多线程实现echo服务器与客户端“一对多”(即是一台服务器可以响应多个客户端的请求)。本人写了个demo,和大家一起分享,有不足的地方,请多多指教,我是壮壮熊。编译时,在后面加上-lpthread。例如:g++service2.cpp-oservice2-lpthread。否则会提示线程方面的错误。echo服务器端代码:#include#include#include#inc
imxiangzi
·
2020-08-08 16:17
Linux/网络
深入理解
Linux网络
技术内幕-设备注册和初始化(三)
net_device结构是一个非常庞大的数据结构,其中的字段包含了从硬件层、网络层和传输层等各种功能涉及的参数,因此,其初始化也是分批由不同的函数完成的,相当于每个函数负责其中相关联的一些子集字段,大致分为:设备驱动程序:完成与硬件配置相关的IRQ、I/O内存以及I/O端口等字段通用设备类型:对同一类设备的一些共性字段由内核实现的通用类型初始化函数完成,如ether_setup、fddi_setu
fengzhishang_meteor
·
2020-08-08 15:21
Linux
Kernel
Network
继iptables之后的新一代包过滤框架是nftables
一气呵成不知是自夸还是自嘲,权当小时候写的日记吧,自幼喜欢每天写日记,中学时更是以退士为名折腾了几箱子抄本,前几年由于喝酒就改为周记了,现在意识到了生命短暂,时间甚是不够用,不能在迷迷糊糊中得过且过,就准备把自己知道的关于
Linux
dog250
·
2020-08-08 15:10
高并发
linux网络
服务器核心代码实现-传智-专题视频课程
高并发
linux网络
服务器核心代码实现—13954人已学习课程介绍当你在使用libevent/libev和Apache/Nginx构建你的服务器时,你是否对网络底层通信了解呢?
传智播客教育集团
·
2020-08-08 15:01
视频教程
linux网络
编程入门——基于socket的proxy
学习
Linux网络
编程有一段时间了,作为一个总结,写一个基于socket的proxy,算是复习前面的所学。
clearriver
·
2020-08-08 14:09
socket
编程
网络
linux
服务器
java
Linux网络
编程 使用epoll实现一个高性能TCP Echo服务器
#零、前言在
Linux网络
编程中,使用I/O复用来处理大规模并发连接是一种常见的方法,常用的有select、poll、epoll,本文主要讲述epoll的使用方法,并使用epoll实现一个高性能的Echo
chengjuelai7601
·
2020-08-08 14:30
【
Linux网络
编程】基于TCP的线程池(pthread_pool)版本HTTP服务器
(线程池代码参考网上的)服务器代码:#include#include#include#include#include#include#include#include"mypthreadpool.h"#defineSOCK_FAIL1#defineBIND_FAIL2#defineLISTEN_FAIL3#defineUSE_ERROR4#defineACCPET_FAIL5intamount=0;
春风来不来
·
2020-08-08 13:31
linux
同步异步/阻塞非阻塞 和 5种
linux网络
通信模型
/7453390会阻塞的函数:connect,accept,send/recv/sendto/recvfrom等读写函数.不会阻塞的函数:bind,listen,socket,closesocket.
linux
FreedomRoad~
·
2020-08-08 12:54
网络编程
poll服务器
想详细彻底地了解poll或看懂下面的代码请参考《
Linux网络
编程——I/O复用之poll函数》代码:[csharp]viewplaincopyincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludedefineOPEN_MAX100intmain
BUG_SPECIAL
·
2020-08-08 12:44
linux
网络编程
服务器
linux
嵌入式学习小阶段小总结
接触嵌入式以来,虽然毕业设计的内容只是研究应用开发,但是还是研究了一段时间的底层内容
Linux网络
:桥接模式:主机能够提供多种IP.主机模式:没有外部网络,只能在VM和主机通讯。
yujunyu12
·
2020-08-08 12:57
嵌入式入门
Linux网络
编程 - TCP Socket 简单练习:线程池实现并发服务器
服务器函数执行流程maininit_systemcreat_pthread_poolchild_workthread_managertask_managerprocess_clientmonitorsys_cleanMakefile文件[plain]viewplaincopyprint?CC=gccTARGET=pthread_poolSRC=pthread_pool.cbase.cOBJECT=
ygl840455828ygl
·
2020-08-08 12:21
linux编程之网络编程
《linux设备驱动开发详解》笔记——14
linux网络
设备驱动
14.1网络设备驱动结构网络协议接口层:硬件无关,标准收发函数dev_queue_xmit()和netif_rx();注意,netif_rx是将接收到的数据给上层,有时也在驱动收到数据以后调用。网络设备接口层,net_device,统一接口名称,使上层独立于具体硬件。设备驱动功能层,实现net_device的各成员物理层在整个以太网架构里,有两个数据结构非常重要,即sk_buff和net_devi
z-pan
·
2020-08-08 11:41
linux网络
编程之简单的线程池实现
转眼间离15年的春节越来越近了,还有两周的工作时间貌似心已经不在异乡了,期待与家人团聚的日子,当然最后两周也得坚持站好最后一班岗,另外期待的日子往往是心里不能平静的,越是想着过年,反而日子过得越慢,于是乎,还是用学习来充斥这些碎片时间,当人一充实,时间也就过得快了,继续学习:上次中已经用互斥锁与条件变量来改造了生产者与消费者问题,这次利用它来实现一个线程池,加强对条件变量及互斥锁的认识,下面开始:
weixin_30647065
·
2020-08-08 11:40
linux网络
编程之多线程多进程服务器与进程线程池
一.实现tcp服务端多进程编写#include#include#include#include#include#include#includestaticvoidusage(constchar*proc){printf("Usage:%s[local_ip][local_port]\n",proc);}intstartup(constchar*_ip,int_port){intsock=socke
someday1314
·
2020-08-08 11:43
linux
网络编程
线程池进程池
Linux网络
编程——tcp并发服务器(多进程)
http://blog.csdn.net/lianghe_work/article/details/46503895一、tcp并发服务器概述一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。二、多进程并发服务器在Linux环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请
sinat_35297665
·
2020-08-08 11:41
Linux网络编程
Linux网络
编程实验——线程池实现服务器
本实验是按照《Linux高性能服务器编程》15.5节实现的。原理很简单,就是利用epoll+多线程对客户请求进行处理。代码已经放在了git仓库,下面记录了几个我遇到的问题。1.异常表现:在进行压测时,服务器会触发许多对-1文件描述符的异常关闭。 这个问题我排查了很久,最后发现原来是因为自己不熟悉多线程编程而导致的。 对于每一个客户连接我都使用一个实体类来表示,其中也包括这个连接的文件描述符
Little Prince~
·
2020-08-08 11:03
【
Linux网络
编程】高并发服务器编程 -- 进程池与线程池
【
Linux网络
编程】高并发服务器编程--进程池与线程池【1】动态创建进程/线程实现高并发的缺点耗费时间,响应慢;动态创建的子进程/子线程通常只能为一个客户服务,将导致系统产生大量的细微进程/线程,进程
奋斗企鹅copper
·
2020-08-08 11:42
网络编程
Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)
10-Linux系统编程-第10天(网络编程基础-socket)一、
Linux网络
编程阶段二、网络基础1、网络开发两种设计模式》协议的概念什么是协议?
AllisWell_WP
·
2020-08-08 11:04
Linux网络
编程之进程、线程池及实现简单线程池
一、池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资源的
深山夕照
·
2020-08-08 11:01
linux
Linux网络
编程——epoll服务器编写
epoll服务器端代码:#include#include#include#include#include#include#include#includestaticvoidusage(constchar*proc){printf("Usage:%s[local_ip][local_port]\n",proc);}typedefstructfd_buf{intfd;charbuf[10240];}f
BUG_SPECIAL
·
2020-08-08 10:44
linux
Linux网络
编程——线程池架构
线程池概念及用途概念:实质就是一个装着线程的的容器,线程池一种多线程的处理方式,处理过程间任务添加到队列,然后创建线程后自动启动这些任务。比喻:这有点像去街上借的共享充电宝,收集这些充电宝的盒子就是线程池,充电宝就是线程。每个人去拿共享充电宝,就相当于是充电宝接任务。从这个比喻可以知道,共享充电宝收集盒(线程池)里面要先有一些充电宝(已经创建好的线程)才行。为什么要有线程池:节省资源,每次来一个客
励志成为编程大佬
·
2020-08-08 10:01
Linux网络编程
Linux网络
编程——高并发服务器之epoll模型
事前准备(可忽略)在这之前我们需要先看看自己的虚拟机能够连接最大客户端数(可以说是设置最大打开文件描述符限制),并且进行修改。按一下步骤进行输入(不同版本的虚拟机查出来的数目可能会有些差异,但是这些指令都是可以用的)输入ulimit–n来看可连接最大客户端数(如果你是32位的虚拟机可能是1024)输入sudovi/etc/security/limits.conf写入以下配置,soft软限制,har
励志成为编程大佬
·
2020-08-08 10:00
Linux网络编程
Linux网络
编程——高并发服务器之select模型
1、前言1.1、IO模型下面用服务器比成车站,客户端比喻成小明。传统阻塞模型:小明去车站买票,没买到票就在车站等待,直到有车票为止。非阻塞模型:小明去车站买票,没票的话,他没过一段时间就去看看有没有票,没有票就回去。他消耗了来回的这一个过程,但是不用等待。多路转接IO复用:委托黄牛来购票。select模型就是属于这一类。下面我用两张图来描述两种1.2、select模型概念select能监听的文件描
励志成为编程大佬
·
2020-08-08 10:00
Linux
sk_buf, 再转载,太经典了 - 网络协议栈分析 - 草本植物
本文转自:http://www.360doc.com/content/09/0205/16/36491_2466152.shtml#sk_buff结构可能是
linux网络
代码中最重要的数据结构,它表示接收或发送数据包的包头信息
EthanYYYY
·
2020-08-08 02:05
Linux设备驱动
LINUX网络
基础(四)---数据链路层
以太网帧格式源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的帧协议类型字段有三种值,分别对应IP、ARP、RARP帧末尾是CRC校验码mac地址MAC地址用来识别数据链路层中相连的节点;长度为48位,及6个字节.一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)在网卡出厂时就确定了,不能修改.mac地址通常是唯一的(虚拟机中的
sweeeeeet
·
2020-08-08 00:34
网络
解决
Linux网络
不通问题(Linux安装完后解决方案)
Linux安装完后第一个问题就是解决网络不通问题问题图片如下解决办法三种网络模式桥接模式:虚拟机和宿主机是兄弟关系,统一由宿主机链接的路由器分发ipnat模式:虚拟机和宿主机是父子关,宿主机的vmnet8虚拟网卡充当路由器分发ip由于虚拟网卡也要占用一个ip所以虚拟网关是从2开始的仅主机模式:虚拟机和宿主机是共同关系,很少用到一般用的是nat模式修改主机名hdf01Vi/etc/sysconfig
易霜
·
2020-08-08 00:32
Linux
网络
Linux IO系统
编程系列
笔记之lseek()函数
前言lseek函数操作的对象是文件指针,每当打开一个文件都有一个与之相关联的“文件偏移量”它是一个非负整数,我们在此基础上做的read、write等操作都是针对这个文件偏移量(文件指针)来进行的;系统默认打开一个文件时该文件偏移量初始化为0(即文件指针指向文件开始的位置),除非我们声明O_APPEND参数。函数#include#includeoff_tlseek(intfd,off_toffset
Mark_404
·
2020-08-07 22:19
Linux系统编程
以cpsw为例学习linux设备树
CPSW或者说以太网调换驱动遵循标准的
linux网络
接口构造。对于TI的am
bigPillow
·
2020-08-07 21:40
设备树
菜鸟学Linux 第066篇笔记 简单配置iptables
菜鸟学Linux第066篇笔记简单配置iptables
Linux网络
防火墙netfilter:frameiptables:数据报文过滤,NAT,mangle等规则生成的工具网络:IP报文首部,TCP报文首部
weixin_33843947
·
2020-08-07 20:42
SPSS编程-统计自动化-VBA脚本开发
【课程介绍】本课程是SPSS统计自动化和扩展
编程系列
视频课程中的一个,主要介绍用SPSS提供的VBA语言WinWrapBasic-COM结合SPSS类库和命令语法实现统计自动化和扩展编程,帮助您大幅提高数据分析和可视化的工作效率
tgzssir
·
2020-08-07 18:18
SPSS
Linux网络
编程
WhatSocket也是一种IPC,允许同一计算机不同应用程序通信或者不同计算的应用程序通过网络连接进行通信。socket类型有两种:字节流式socket双向可靠面向连接的字节流传输,对应的就是TCP传输数据报socket数据报的消息形式交换,不可靠,无连接,消息到达是无序、重复或者甚至不能到达,对应UDP传输相关系统调用创建套接字#include/*SeeNOTES*/#includeintso
_忘语_
·
2020-08-07 16:23
Linux系统编程
SPSS编程-统计自动化-Python脚本开发
【课程介绍】本课程是SPSS统计自动化和扩展
编程系列
视频课程中的一个,主要介绍用Python结合SPSS脚本工具类和命令语法实现统计自动化和扩展编程,帮助您大幅提高数据分析和可视化的工作效率。
tgzssir
·
2020-08-07 10:18
SPSS
linux网络
端口失效( Device eth0 does not seem to be present,delaying initialization)解决方法
今天使用Xshell5连接本地虚拟机时发现连不上,使用ifconfig命令查看网络端口发现eth0挂掉了,查看eth0端口网络配置发现配置信息完整。servicenetworkrestart重启网络提示Deviceeth0seemtobepresent,delayinginitalization。网上查资料发现原来是eth0的网络配置中MAC地址配置有误。解决方法:1、vi/etc/sysconf
阑夕的夕
·
2020-08-07 09:35
Linux
linux网络
编程TCP多人聊天室
用socket实现一个多人聊天室的思路很简单,即在服务器端定义一个fd的int型数组,用来存储已经连接的客户端的socket连接套接字fd(因为发送和接收数据都只需要借助连接套接字fd),当服务器接收到来自某一客户端的数据时,直接转发给其他所有连接着的客户端,即完成了多人聊天室服务器端:多线程进行数据的转发,记录聊天记录,向客户端发送进入退出聊天室提醒。客户端:在主线程内发送数据,多线程接收其他客
哈根达斯f
·
2020-08-06 13:36
Linux网络
服务-PXE高效批量网络装机(部署PXE远程安装与kickstart无人值守安装)
文章目录一、部署PXE远程安装服务1.1搭建PXE远程安装服务器1.1.1PXE概述1.1.2配置PXE装机服务器1.2验证PXE网络安装二、实现Kickstart无人值守安装2.1准备安装应答文件2.2实现批量自动装机总结pxe网络装机和kickstart技术综合应用三个服务tftp四个文件tftp主配置文件和站点ftp站点一、部署PXE远程安装服务1.1搭建PXE远程安装服务器1.1.1PXE
ycycyyc_
·
2020-08-05 21:55
Linux网络服务
Linux网络
技能之网络管理相关命令
1.netstat:显示网络连接、运行端口、路由表等(listenerport:监听端口)ss:配置网络或显示当前网络接口状态netstat选项:Proto:数据包的协议,分为TCP和UDPRecv-Q:表示收到的数据已经在本地接收缓存,但是还没有被进程取走的数据包数量Send-Q:对方没有收到的数据包,(或者没有ACK回复的,还在本地缓冲区的数据包数量LocalAddress:本地IP:端口,通
xiangmomo1
·
2020-08-05 21:03
linux
学习Linux运维的个人笔记:
Linux网络
基础篇——抓包,配置网卡与网络命令(二十五)
一、tcpdump抓包tcpdump-ieth0port80-nn-S-i#指定网卡port#指定端口号http80;ftp21;ssh22;telnet23;smtp25;dnsudp53;ntpudp123抓icmptcpdump-ieth0icmp-n-n#不把ip解析成主机名-nn#不把端口解析成应用层协议-c#指定抓包的数量-S#不把随机序列和确认序列解析成绝对值-w#写入tcpdum
徐成功
·
2020-08-05 21:53
linux网络
服务
一、OSI七层模型物理层:传输介质,组网数据链路层:帧,MAC地址寻址,数据成帧,数据检测,重发APR网络层:将网络地址转化为物理地址,网络地址寻址,路由转发IP协议传输层:提供端对端的数据交换,连接,端口会话层:提供点对点连接表示层:数据格式化应用层:应用层服务二、TCP/IP的五层模型四层物理层物理介质,组网。光纤,双绞线数据链路层MAC地址:48位二进制数,12位十六进制表示,确定设备位置数
weixin_43986665
·
2020-08-05 20:04
Linux网络
--远程访问及控制(SSH、TCP Wrappers)
文章目录OpenSSHSSH远程管理SSH客户端程序命令程序--ssh、scp、sftpOpenSSH服务服务配置文件服务配置root登录尝试登录次数设置白名单OpenSSH密钥对验证的SSH体系密钥对验证实现过程配置文件秘钥对验证配置TCPWrappers控制TCPWrappers概述TCPWrapper的访问策略策略的配置格式访问控制规则配置实例总结所有实验在centos7下完成,使用xshe
把梦想藏在蘑菇里
·
2020-08-05 20:55
理论+实验——(
Linux网络
)远程访问及控制
文章目录前言一、SSH远程管理1.配置OpenSSH服务端1.1SSH服务及配置文件1.2服务监听选项1.3用户登录控制1.4登录验证方式2.使用SSH客户端程序3.构建密钥对验证的SSH体系二、TCPWrappers访问控制1.TCPWrappers概述2.TCPWrappers访问策略2.1策略的配置格式2.2访问控制的基本原则2.3TCPWrappers配置实例前言SSH(SecureShe
ZG_66
·
2020-08-05 18:45
网络
Linux
理论+实验
linux网络
编程之TCP/IP基础(三):IP数据报格式和IP地址路由
一、IP数据报格式IP数据报格式如下:注:需要注意的是网络数据包以大端字节序传输,当然头部也得是大端字节序,也就是说:Themostsignificantbitisnumbered0attheleft,andtheleastsignificantbitofa32-bitvalueisnumbered31ontheright.The4bytesinthe32-bitvaluearetransmitt
s1mba
·
2020-08-05 16:42
linux
环境网络编程
Linux/Unix网络编程之UDP的connect函数
对于
linux网络
编程,我们都知道UDP是发送数据报,不是面向连接的协议,也就是它只是把数据报发送到链路层,至于能不能到达目的IP和端口,他都无能为力了。
zhengzhoudaxue2
·
2020-08-05 15:17
unix网络编程读书笔记
TCP/IP协议读书笔记
Linux 网络基础篇
从今天开始开始更新Linux的网络基础,希望大家多多关注,指出错误,我的Linux系统管理已经更新完成,有需要的可以去看看,链接:链接:从零开始学习Linux.
Linux网络
基础篇第一章计算机基础第一节进制转换第二章网络基础第一节互联网概述第二节互联网接入方法第三章网络通信协议第一节
祢听的到丶
·
2020-08-05 15:35
Linux
网络篇
【
LINUX网络
编程】LINUX Socket编程基础
Socket编程基础知识套接字概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。在T
与光同程
·
2020-08-05 15:02
LINUX网络编程
Linux网络
服务——PXE、kickstart实现无人值守自动化部署操作系统(内含具体操作步骤!)
文章目录一.PXE的原理二.kickstart的原理三.PXE与kickstart的结合使用自动装机3.1配置kickstart图形界面的装机参数一.PXE的原理◆PXE(prebootexecuteenvironment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中
最优姐
·
2020-08-05 15:48
Linux网络
上一页
44
45
46
47
48
49
50
51
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他