2007年4月2日
java常用 Java Swing基础
第十六章 Java Swing基础
1、Jcomponent类
Jcomponent类 是所有轻量组件的父类,主要的子类有:
JButton 创建按钮对象,而且可以创建在图标的按钮;JTree 创建树对象
JComboBox 创建组合框对象,和Choice相似;JCheckBox 创建复选框对象
JFileChooser 创建文件选择器;JInternalFrame 创建内部窗体
JLabel 创建标签;JMenu 创建菜单对象;JMenuBar 创建菜单条对象
JMenuItem 创建菜单项对象;JPanel 创建面板对象;JPasswordField 创建口令文本对象
JPopupMenu 创建弹出式菜单;JProgressBar 创建进程条;JRadioButton 创建单选按钮
JScrollBar 创建滚动条;JScrollPane 创建滚动窗格;JSlider 创建滚动条
JSplitPane 创建拆分窗格;JTable 创建表格;JTextArea 创建文本区
JTexPane 创建文本窗格;JToolBar 创建工具条;JToolTip 创建工具提示对象
2、JFrame类
JFrame类及其子类创建的对象是窗体
(1)JFrame类及其子类创建的窗体是swing窗体
(2)不可以把组件直接加到swing窗体中,应该把组件加到内容面板中
(3)不能为swing窗体设置布局,而应当为内容面板设置布局
(4)swing窗体通过调用getContentPane()方法得到它的内容面板
3、JApplet类
(1)不可以把组件直接添加到小程序容器中,也应该添加到内容面板中
(2)不能为小程序设置布局
(3)小程序容器通过调用getContenPane()方法得到内容面板
4、JDialog类
(1)不可以把组件直接添加到对话框容器中,也应该添加到内容面板中
(2)不能为对话框设置布局
(3)对话框容器通过调用getContenPane()方法得到内容面板
5、JPanel面板:JPanel();JPanel(布局对象)
6、滚动窗口JScrollPane:JScrollPane();JScrollPane(component c)
7、拆分窗口JSplitPane
JSplitPane(int a,Component b,Component c)
a的取值是HORIZONTAL_SPLIT或者VERTICAL_SPLIT决定水平拆分还是垂直拆分
JSplitPane(int a,boolean b ,Component b,Component c) b的取值决定拆分线移动的时候组件是否连续变化
8、内部窗体JInternalFrame
JInternalFrame(String title,boolean resizable,booleam closable,boolean max,boolean min)
参数的意义分别是窗口名称,是否能调整大小,是否有关闭按钮,最大化按钮,最小化按钮
(1)不能把组件直接加到窗体中,而是加到内容面板中
(2)必须先把内部窗体加到一个容器中(JDesktopPane),该容器是专门为内部窗体服务的
9、按钮(JButton)
JButton() 创建按钮;JButton(String s) s是按钮的名字
JButton(Icon icon) icon是按钮上的图标;JButton(String s,Icon icon)
getText() 获取按钮名字;getIcon() 获取按钮图标
setIcon(Icon icon) 设置按钮图标
setHorizontalTextposition(int a) a确定按钮上图标的位置,取值:
AbstractButton_CENTR,AbstractButton_LEFT,AbstractButton_RIGHT
setVerticalTextposition(int a) a确定按钮上名字相对图标的位置,取值:
AbstractButton.TOP,AbstractButton.BOTTOM,AbstractButton.CENTR
setMnemonic(char c) 设置按钮的键盘操作方式是字符c(Alt+c)
setEnabled(boolean b) b决定按钮是否可以被单击
posted @ 2007-04-02 13:27 maiyatang 阅读(128) | 评论 (0) | 编辑 收藏
java常用 Java与多媒体
第十五章 Java与多媒体
1、在小程序中播放声音
java可以播放au,aiff,wav,midi,rfm格式的音频
可以调用Applet的一个静态方法:
newAudioClip(URL url,String name) url是地址,name是音频名称
也可以用Applet类的实例方法:
getAudioClip(URL url,String name)
根据url地址和声音文件name,获得一个用于播放的音频对象,这对象可以使用下面的方法来处理声音:
play() 播放声音文件name;loop() 循环播放name;stop() 停止播放name
2、Java媒体框架(JMF)
创建播放器
try
{
URL url=new URL(getDocumenBase(),视频文件名称);
player player=Manager.createPlayer(url);
}
catch(IOException e){}
向播放器注册控制监视器
player.addControllerListener(监视器);
创建监视器必须使用接口ControllerListener ,该接口中的方法是
public void controllerUpdate(ControllerEvent e)
让播放器对媒体进行预提取:player.prefetch()
启动播放器:player.start();
停止播放器:player.stop();
停止播放器后必须释放内存中的资源:player.deallocate();
posted @ 2007-04-02 13:26 maiyatang 阅读(112) | 评论 (0) | 编辑 收藏
java常用 JDBC
第十四章 Java数据库连接(JDBC)
1、JDBC-ODBC桥接器
建立JDBC-ODBC桥接器
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver";
}
catch(ClassNotFoundException e){}
连接到数据库
try
{
Connection con=DriverManager.getConnection("jdbc:jdbc:数据源名称","数据源的login name",
"数据源的password"
}
catch(SQLException e){}
向数据库发送SQL语句
try
{
Statement sql=con.createStatement();
}
catch(SQLException e){}
处理查询结果
ResultSet rs=sql.executeQuery("SQL语句";
posted @ 2007-04-02 13:25 maiyatang 阅读(91) | 评论 (0) | 编辑 收藏
java常用 Java与图像
第十三章 Java与图像
1、java支持的图像类型:GIF,JPEG,BMP
2、Image类
首先申请一个Image对象
Image img =getImage(URL url,String name) url是图像地址,name是图片名称
通常使用:
Image img =getImage(getCodBase(),String name) getCodBase()获取当前小应用程序的URL,也就是在同一目录下
图像被加载后,就可以在paint()中绘制了
drawImage(Image img,int x,int y,ImageObserver observer)
img是上面获取的图像, x,y是指定图像左上角的位置,observer是加载图像时的图像观察器
Applet类已经实现了ImageObserver接口,所以可以直接使用this作为最后一个参数
drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)
width和height是要绘制的图像的宽和高
可以使用img.getHeight(this)和img.getWidth(this)来获取被加载的图像的宽和高
3、设置Java窗口图标
Frame对象可以使用setIconImage(Image img)方法设置左上角图标,默认图标是咖啡杯
posted @ 2007-04-02 13:25 maiyatang 阅读(82) | 评论 (0) | 编辑 收藏
java常用 java网络的基本知识
第十二章 java网络的基本知识
1、使用URL(统一资源定位)
例如:
try
{
url=new URL("http://www.sina.com.cn";
}
catch(MalformedURLException e)
{
System.out.println("Bad URL:"+url);
}
在Applet 中链接向另外的Web页面,使用代码:
getAppletContext().showDocument(url);
2、套接字
客户建立到服务器的套接字(Socket)
Socket(String host,int port) host是服务器的IP地址,port是端口号
建立了套接字后可以使用getInputStream()获得输入流
还可以使用getOutputStream()获得一个输出流
服务器建立接受客户套接字的服务器套接字(ServerSocket)
ServerSocket(int port) port是端口号
建立了套接字连接后可以使用accept()接收客户的套接字
可以使用getOutputStream()获得一个输出流
还可以使用getInputStream()获得一个输入流
3、InetAddress类
getByName(String s) 获取Internet上主机的地址
getHostName() 获取InetAddress对象所包含的域名
getHostAddress() 获取InetAddress对象所包含的IP地址
getLocalHost() 获取本地地址
4、UDP数据报
发送数据包,即使用DatagramPacket类将数据打包,有两种构造方法
DatagramPacket(byte data[],int length,InetAddress address,int port)
?含有data数组的数据
?该数据包将发送到地质是address,端口是port的主机上
DatagramPacket(byte data[],int offset,int length,InetAddress address,int port)
?含有data数组的从offset开始,length长度的数据
?该数据包将发送到地质是address,端口是port的主机上
接收数据包,即使用DatagramSocket(int port)创建一个对象,port必须和待接收的数据包的端口相同
例如:
如果发送方的数据包端口是5566
DatagramSocket mail=new DatagramSocket(5566);
然后对象mail可以使用方法receive(Datagrampacket pack)接收数据包
在使用参数pack 接收数据包前,必须创建pack
byte data[]=new byte[100];
int length=90;
DatagramPacket pack=new DatagramPataet(data,length);
mail.receive(pack);
该数据包pack将接收长度是length的数据放入data,注意数据长度不要超过8192KB
pack还可以调用方法getPort()获取所接受数据包是从什么端口发出的
调用方法InetAddress getAddress()可以获知数据包来自哪个主机
posted @ 2007-04-02 13:24 maiyatang 阅读(41) | 评论 (0) | 编辑 收藏
java常用 输入输出流
第十一章 输入输出流
1、FileInputStream类
FileInputStream(String name) 使用给定的文件名name创建一个FileInputStream对象
FileInputStream(File file) 使用File对象创建FileInpuStream对象
File类有两个常用方法:
File(String s) s确定文件名字;File(String directory,String s) directory是文件目录
处理I/O异常
当出现I/O错误的时候,Java生成一个IOException(I/O异常)对象来表示这个错误的信号。
程序必须使用一个catch检测这个异常
从输入流中读取字节
int read() 返回0~255之间一个整数,如果到输入流末尾,则返回-1
int read(byte b[]) 读取字节数组
int read(byte b[],int off,int len):
off指定把数据存放在b中什么地方,len指定读取的最大字节数
关闭流
close()
2、FileOutputStream类
FileOutputStream(String name) 使用指定的文件名name创建FileOutputStream对象
FileOutputStream(File file) 使用file对象创建FileOutputStream对象
FileOutputStream(FileDescriptor fdobj) 使用FileDescriptor对象创建FileOutputStream对象
3、FileReader类和FileWriter类
FileReader(String filename);FileWriter(String filename)
处理时需要FileNotFoundException异常
4、RandomAccessFile类
RandomAccessFile不同于FileInputStream和FileOutputStream,不是他们的子类
当我们想对一个文件进行读写操作的时候,创建一个指向该文件的RandomAccessFile流就行了
RandomAccessFile类有两个构造方法:
RandomAccessFile(String name, String mode) name是文件名,mode取r(只读)或rw(读写)
RandomAccessFile(File file,String mode) file给出创建流的源
seek(long a) 移动RandomAccessFile流指向文件的指针,a确定指针距文件开头的位置
getFilePointer() 获取当前文件的指针位置;close() 关闭文件
getFD() 获取文件的FileDescriptor;length() 获取文件长度
read() 读取一个字节数据;readBoolean() 读取一个布尔值;readByte() 读取一个字节
readChar();readFloat();readFully(byte b[]);readInt();readLine();readLong()
readUnsignedShort();readUTF() 读取一个UTF字符串
setLength(long newLength) 设置文件长度;skipByte(int n) 在文件中跳过给定数量的字节
write(byte b[]) 写b.length个字节到文件;writeBoolean(bolean b)
writeByte(int v);writeChar(char c);writeChars(String s);writeDouble(double d)
writeFloat(float v);writeInt(int i);writeLong(long l);writeShort(int i)
writeUTF(String s)
5、管道流
PipedInputStream类;PipedInputStream() 创建一个管道输入流
PipedInputStream(PipedOutputStream a) 连接到输出流a的输入流
read() 从输入流中读取一个字节
read(byte b[],int off,int len) off是在b中的开始位置,len是字节长度
PipedOutputStream类;PipedOutputStream() 创建一个输出流
PipedOutputStream(PipedInputStream a) 连接到输入流a的输出流
write(int b);write(byte b[],int off,int len)
counnect() 连接输入输出流;close() 关闭流;在使用的时候要捕获IOException异常。
6、数据流
DataInputStream类(数据输入流)
DataInputStream(InputStream in) 将数据输入流指向一个由in指定的输入流
DataOutputStream类(数据输出流)
DataOutputStream(OutputStream out) 将数据输出流指向一个由out指定的输出流
主要方法:
close();read() 读取一个字节数据;readBoolean() 读取一个布尔值
readByte() 读取一个字节;readChar();readFloat();readFully(byte b[])
readInt();readLine();readLong();readUnsignedShort()
readUTF() 读取一个UTF字符串;skipByte(int n) 在文件中跳过给定数量的字节
write(byte b[]) 写b.length个字节到文件;writeBoolean(bolean b)
writeByte(int v);writeChar(char c);writeChars(String s);
writeDouble(double d);writeFloat(float v);writeInt(int i)
writeLong(long l);writeShort(int i);writeUTF(String s)
7、对象流
ObjectInputStream类和ObjectOutputStream类分别是DataInputStream类和DataOutputStream类的子类
8、回压输入流
PushbackInputStream类;PushbackInputStream(InputStream in)
PushbackReader类;PushbackReader(Reader in)
unread(char c) 回压一个字符;unread(char c[]) 回压数组c中全部字符
unread(char c[],offset,int n) 回压c中从offset开始的n个字符
posted @ 2007-04-02 13:24 maiyatang 阅读(64) | 评论 (0) | 编辑 收藏
java常用 java多线程机制
第十章 Java多线程机制
1、Java的线程类与Runnable接口
Thread类
public Thread() 创建线程对象; public Thread(Runnable target)
target称为被创建线程的目标对象,负责实现Runnable
线程优先级
Thread类有三个有关线程优先级的静态常量:MIN_PRIORITY,MAX_PRIORITY,NORM_PRIORITY
新建线程将继承创建它的副线程的优先级。
用户可以调用Thread类的setPriority(int a)来修改a的取值:
Thread.MIN_PRIORITY,Thread.MAX_PRIORITY,Thread.NORM_PRIORITY
主要方法
启动线程 start();定义线程操作 run()
使线程休眠 sleep():sleep(int millsecond) 以毫秒为单位的休眠时间
sleep(int millsecond,int nanosecond) 以纳秒为单位的休眠时间
currentThread() 判断谁在占用CPU的线程
posted @ 2007-04-02 13:23 maiyatang 阅读(43) | 评论 (0) | 编辑 收藏
java常用 Java中的鼠标和键盘事件
第九章 Java中的鼠标和键盘事件
1、使用MouseListener借口处理鼠标事件
鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出
鼠标事件类型是MouseEvent,主要方法有:
getX(),getY() 获取鼠标位置;getModifiers() 获取鼠标左键或者右键
getClickCount() 获取鼠标被点击的次数;getSource() 获取鼠标发生的事件源
事件源获得监视器的方法addMouseListener(),移去监视器的方法removeMouseListener()
处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法
mousePressed(MouseEvent) 负责处理鼠标按下事件
mouseReleased(MouseEvent) 负责处理鼠标释放事件
mouseEntered(MouseEvent) 负责处理鼠标进入容器事件
mouseExited(MouseEvent) 负责处理鼠标离开事件
mouseClicked(MouseEvent) 负责处理点击事件
2、使用MouseMotionListener接口处理鼠标事件
事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动;鼠标事件的类型是MouseEvent
事件源获得监视器的方法是addMouseMotionListener()
处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法
mouseDragged() 负责处理鼠标拖动事件;mouseMoved() 负责处理鼠标移动事件
3、控制鼠标的指针形状
setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书 P 210)
4、键盘事件
键盘事件源使用addKeyListener 方法获得监视器
键盘事件的接口是KeyListener 接口中有3个方法
public void keyPressed(KeyEvent e) 按下键盘按键
public void keyReleased(KeyEvent e) 释放键盘按键
public void keyTypde(KeyEvent e) 按下又释放键盘按键
posted @ 2007-04-02 13:22 maiyatang 阅读(525) | 评论 (0) | 编辑 收藏
java常用 建立对话框
第八章 建立对话框
1、Dialog类
Dialog(Frame f,String s) 构造对话框,初始不可见,s是标题,f是对话框所依赖的窗口
Dialog(Frame f,String s,boolean b) b设置初始是否可见
getTitle() 获取对话框标题;setTitle(String s) 设置对话框标题
setModal(boolean b) 设置对话框模式;setSize(int w,int h) 设置对话框大小
setVisible(boolean b) 显示或隐藏对话框
2、FileDialog类
Filedialog(Frame f,String s,int mode) mode的值是fileDialog.LOAD或者fileDialog.SAVE
public String getDirectory() 获取当前文件对话框中显示的文件所属目录
public String getFile() 获取当前文件对话框中文件的字符串表示,不存在返回null
posted @ 2007-04-02 13:21 maiyatang 阅读(48) | 评论 (0) | 编辑 收藏
java常用 窗口和菜单
第七章 窗口和菜单
1、窗口
Frame() 构造窗口;Frame(String s) 窗口标题是s
setBounds(int x,int y,int w,int h) 窗口位置x,y,宽w,高y
setSize(int w,int h) 设置窗口位置(单位是像素)
setBackground(Color c) 设置背景颜色;setVisible(boolean b) 设置窗口是否可见
pack() 窗口出现时紧凑;setTitle(String s) 设置标题为s
getTitle() 获取标题;setResizable(boolean b) 设置窗口大小是否可以调整
2、菜单条
Menubar() 构造菜单条;setMenubar() 窗口添加菜单条
3、菜单
Menu() 构造菜单;Menu(String s) 构造菜单,标题s
add(MenuItem item) 菜单增加菜单选项item;add(String s) 向菜单增加选项s
getItem(int n) 获取n处的选项;getItemCount() 获取选项数目
insert(MenuItem item,int n) 在n处插入菜单选项item
insert(String s,int n) 在n处插入菜单选项
remove(int n) 删除菜单的n处的菜单选项;removeAll() 删除全部
4、菜单项
MenuItem() 构造菜单项;MenuItem(String s) 构造标题是s的菜单项
setEnabled(boolean b) 设置是否可以被选择;getLabel() 得到菜单选项名
addActionListener() 添加监视器
5、有关菜单的技巧
addSeparator() 增加菜单分割线;CheckboxMenuItem() 复选框菜单项
setShortcut(MenuShortcut k) 设置快捷键(k取值KeyEvent.VK_A----KeyEvent.VK_Z)
posted @ 2007-04-02 13:21 maiyatang 阅读(40) | 评论 (0) | 编辑 收藏
java常用 按钮、标签、选择框、选择控件、滚动列表
第三章 按钮
1、按钮
Button() 构造按钮;Button(String s) 构造按钮,标签是s
setLabel(String s) 设置按钮标签是s;getLabel() 获取按钮标签
addActionListener() 添加监视器;removeActionListener() 移去监视器
第四章 标签
1、标签
Label() 构造标签;Label(String s) 构造标签,显示s
Label(String s,int x)x是对齐方式,取值:Label.LEFT;Label.RIGHT;Label.CENTER
setText(String s) 设置文本s;getText() 获取文本
setBackground(Color c) 设置标签背景颜色;setForeground(Color c) 设置字体颜色
第五章 选择框
1、选择框
Checkbox() 构造选择框;Checkbox(String s) 构造选择框,给定标题s
Checkbox(String s,boolean b) b设定初始状态
Checkbox(String s,boolean b,CheckboxGroup g) g设定了所属的组(有了组就成为单选框)
addItemListener() 添加监视器;removeItemListener() 移去监视器
getState() 返回选择框的是否选中状态;setState(boolean b) 设置选择框的状态
getLabel() 获取选择框的标题;setLabel(String s) 设置选择框的标题为s
第六章 选择控件和滚动列表
1、选择控件
Choice() 构造选择控件;add(String s) 向选择控件增加一个选项
addItemListener() 添加监视器;removeItemListener() 移去监视器
getSelectedIndex() 返回当前选项的索引;getSelectedItem() 返回当前选项的字符串代表
insert(String s,int n) 在n处插入选项s
remove(int n);removeAll()
2、滚动列表
List() 构造滚动列表;List(int n) 参数n是可见行数
List(int n,boolean b) 参数b是设置是否可以多项选择
add(String s) 向列表的结尾增加一个选项;add(String s,int n) 在n处增加一个选项
AddActionListener() 滚动列表添加监视器
addItemListener() 滚动列表上的选项添加监视器
remove(int n) 删除n初的选项;remnoveAll() 删除全部选项
getSelectedIndex() 返回当前选项的索引;getSelectedItem() 返回当前选项的字符串代表
3、组件类的一些常用方法
void setBackground(Color c) 设置组件背景颜色
void setForeground(Color c) 设置组件前景颜色
void setFonts(Font f) 设置组件字体
void setBounds(int x,int y,int w,int h) 设置坐标,x,y表示在容器中坐标,w,h表示宽和高
void setLocation(int x,int y) 移动到x,y 处;void setSize(int w,int h) 设置宽和高
void setVisible(boolean b) 设置组建是否可见
int getBounds().wigth 获取宽;int getBounds().height 获取高
int getBounds().x 获取x 坐标;int getBounds().y 获取y 坐标
Toolkit getToolkit() 获取工具包对
void setEnabled(boolean b) 设置是否可以使用(默认可以)
posted @ 2007-04-02 13:20 maiyatang 阅读(56) | 评论 (0) | 编辑 收藏
java常用 文本框和文本区
第二章 文本框和文本区
1、文本框
TextField() 构造文本框,一个字符长、TextField(int x) 构造文本框,x个字符长
TextField(String s) 构造文本框,显示s、setText(String s) 设置文本为s
getText() 获取文本、setEchoChar(char c) 设置显示字符为c
setEditable(boolean) 设置文本框是否可以被修改、addActionListener() 添加监视器
removeActionListener() 移去监视器
2、文本区
TextArea() 构造文本区;TextArea(String s) 构造文本区,显示s
TextArea(String s,int x,int y) 构造文本区,x行,y列,显示s
TextArea(int x,int y) 构造文本区,x行,y列
TextArea(String s,int x,ing y,int scrollbar)
scrollbar的值是:
TextArea.SCROLLBARS_BOTH;TextArea.SCROLLBARS_VERTICAL_ONLY
TextArea.SCROLLBARS_HORIZONTAL_ONLY;TextArea.SCROLLBARS_NONE
setText(String s) 设置文本为s;getText() 获取文本
addTextListener() 添加监视器;removeTextListener() 移去监视器
insert(String s,int x) 在x处插入文本s
replaceRange(String s,int x,int y) 用s替换从x到y处的文本
append(String s) 在文本的最后追加文本s
Int getCaretPosition(int n) 获取文本区中光标的位置
posted @ 2007-04-02 13:18 maiyatang 阅读(39) | 评论 (0) | 编辑 收藏
java常用(字符串)
第一章 字符串
1、获取字符串的长度:length()
2、判断字符串的前缀或后缀与已知字符串是否相同
前缀 startsWith(String s)、后缀 endsWith(String s)
3、比较两个字符串:equals(String s)
4、把字符串转化为相应的数值
int型 Integer.parseInt(字符串)、long型 Long.parseLong(字符串)
float型 Folat.valueOf(字符串).floatValue()
double型 Double.valueOf(字符串).doubleValue()
5、将数值转化为字符串:valueOf(数值)
6、字符串检索
indexOf(Srting s) 从头开始检索
indexOf(String s ,int startpoint) 从startpoint处开始检索
如果没有检索到,将返回-1
7、得到字符串的子字符串
substring(int startpoint) 从startpoint处开始获取
substring(int start,int end) 从start到end中间的字符
8、替换字符串中的字符,去掉字符串前后空格
replace(char old,char new) 用new替换old
9、分析字符串
StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)
StringTokenizer(String s,String delim) delim是自己定义的分隔符
nextToken() 逐个获取字符串中的语言符号
boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false
countTokens() 得到一共有多少个语言符号
posted @ 2007-04-02 13:17 maiyatang 阅读(23) | 评论 (0) | 编辑 收藏
子网掩码快速算法
子网掩码的快速算法
2的0次方到10次方是多少把?也给大家说一下,分别是:
1 2 4 8 16 32 64 128 256 512 1024。
如果每个子网中只有5个ip地址可以给机器用,那么你就最少需要准备给每个子网7(5+2)个ip地址,因为需要加上两头的不可用的网络和广播ip,所以你需要选比7多的最近的那位,也就是8,就是说选每个子网8个ip。好,到这一步,你就可以算掩码了,这个方法就是:最后一位掩码就是256减去你每个子网所需要的ip地址的数量,那么这个例子就是256-8=248,那么算出这个,你就可以知道那些ip是不能用的了,看:0-7,8-15,16-23,24-31依此类推,写在上面的0、7、8、15、16、23、24、31(依此类推)都是不能用的,你应该用某两个数字之间的IP,那个就是一个子网可用的IP,怎么了?是不是不相信?太简单了。
我再试验一下,就拿200台机器分成4个子网来做例子吧。
200台机器,4个子网,那么就是每个子网50台机器,设定为192.168.10.0,C类的IP,大子网掩码应为255.255.255.0,但是我们要分子网,所以按照上面的,我们用32个IP一个子网内不够,应该每个子网用64个IP(其中 62位可用,足够了吧),然后用我的办法:子网掩码应该是256-64=192,那么总的子网掩码应该为:255.255.255.192。不相信?算算:0-63,64-127,128-191,192-255,这样你就可以把四个区域分别设定到四个子网的机器上了,是不是很简单?不需要软件算了吧。
/24就是255.255.255.0~子网掩码哦。
一个10进制的255~就是2进制的8个1
三个255.255.255`就是24个1~所以写24
比如我ip是:218.77.26.114/255.255.255.192应该怎么换算成缩略子网掩码方式
255.255.255.192 换算成二进制:
11111111.11111111.11111111.11000000
前三组都是8bit, 第四组 192 -> 11000000 表示2bit (左起11) 用做subnet(子网)
那末这个子网掩码中共有8+8+8+2 = 26 bit 是用作网络标识。
结果:
218.77.26.144/255.255.255.192 => 218.77.26.144/26