Linux distributions DIP依赖倒置原则

本文涉及的产品
云防火墙,500元 1000GB
简介:


既然要架设服务器,首先当然得要了解一下因特网。因为不管是哪种操作系统,若想要与因特网联机,这个网络基础就得了解。 举例来说,『网域』是经常会谈到的概念,当你发现一个设定为 192.168.1.0/255.255.255.0 时,晓得那是什么鬼东西吗? 如果不知道的话,呵呵!绝对无法设定好网站的啦!另外,为何你需要服务器?当然是想要达成某项网络服务。 举例来说,传输档案可以用 FTP,那 WWW 可以传递档案吗?网芳可以传递吗?各有何用处?哪个比较方便? 对于客户或老板来说,我们所设定的服务能否满足他们的需求等等,这都需要了解,否则你将一头雾水啊! 因此这部份你就得要了解:

基本的网络基础知识:包括以太网络硬件与协议、TCP/IP、网络联机所需参数等;
各网络服务所对应的通讯协议原理,以及各通讯协议所需对应的软件。

服务器本身:了解架网络服务器之目的以配合主机的安装规划

想要架设服务器吗?那...架什么服务器?这个服务器要不要对 Internet 开放?这个服务要不要针对客户提供相关账号? 要不要针对不同的客户账号进行例如磁盘容量、可活动空间与可用系统资源进行限制?如果要进行各项资源的限制, 那服务器操作系统应该要如何安装与设定?问题很多吧!所以,先了解你要的服务器服务目的之后,后续的规划才能陆续出炉。 不过,如果架站只是为了『练功』而已,呵呵!那就不需要考虑太多了~

服务器本身:了解操作系统的基本操作

网络服务软件是需要建置在操作系统上面的,所以基本的操作系统操作就得要了解才行啊!包括软件如何安装与移除? 如何让系统进行例行的工作管理?如何依据服务器服务之目的规划文件系统?如何让文件系统具有未来扩充性 (LVM 之类)? 系统如何管理各项服务之启动?系统的开机流程为何?系统出错时,该如何进行快速复原等等,这都需要了解的呢!

内部防火墙设定:管理系统的可分享资源

一部主机可以拥有多种服务器软件的运作,而很多 Linux distributions 出厂的默认值就已经开放很多服务给 Internet 使用了,不过这些服务可能并不是你想要开放的呢。我们在了解网络基础与所需服务的目的之后, 接下来就是透过防火墙来规范可以使用本服务器服务的用户,以让系统在使用上拥有较佳的控管情况。 此外,不管你的防火墙系统设定的再怎么严格,只要是你要开放的服务, 那防火墙对于该服务就没有保护的效果。因此,那个重要的在线更新软件机制就一定要定期进行!否则你的系统将会非常非常的不安全!

Android手机的应用,除了它的手机功能之外,另外一个吸引人的地方在于它的开放性,这一点iphone无法比拟,至少iphone太多商业化气息。android为我们开启另一扇交流之窗,而要实现交流,socket通信必不可少。

java在socket通信方面上已经有了很好的范例,我只是抛砖引玉,将其引入到android之中,疏漏之处在所难免,很多地方也值得深思与考量,高手不必拍砖,可跳过此文。下面,用敲门的方式演示Android如何实现套接字的通信。


服务器程序
服务器程序需要在PC上运行,该程序比较的简单,因此不需要建立Android项目,直接定义一个JAVA类,并且运行该类即可。它仅仅建立ServerSocket监听,并使用Socket获取输入输出流。

[java] view plain copy
import java.io.IOException;  
import java.io.OutputStream;  
import java.net.ServerSocket;  
import java.net.Socket;  
  
public class SimpleServer {  
  
    /** 
     * @param args 
     * @throws IOException  
     */  
    public static void main(String[] args) throws IOException {  
        // TODO Auto-generated method stub  
  
        //创建一个ServerSocket,用于监听客户端socket的连接请求  
        ServerSocket ss=new ServerSocket(30000);  
        //采用循环不断接受来自客户端的请求,服务器端也对应产生一个Socket  
        while(true){  
            Socket s=ss.accept();  
            OutputStream os=s.getOutputStream();  
            os.write("您好,您收到了服务器的新年祝福!n".getBytes("utf-8"));  
            os.close();  
            s.close();  
    }  
  
    }}  

客户端程序
[java] view plain copy
package my.learn.tcp;  
  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.net.Socket;  
import java.net.UnknownHostException;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.util.Log;  
import android.widget.EditText;  
  
public class SimpleClient extends Activity {  
    private EditText show;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        show = (EditText) findViewById(R.id.show);  
  
        try {  
  
            Socket socket = new Socket("自己计算机的IP地址", 30000);  
            //设置10秒之后即认为是超时  
            socket.setSoTimeout(10000);  
            BufferedReader br = new BufferedReader(new InputStreamReader(  
                    socket.getInputStream()));  
            String line = br.readLine();  
  
            show.setText("来自服务器的数据:"+line);  
  
            br.close();  
            socket.close();  
  
        } catch (UnknownHostException e) {  
            // TODO Auto-generated catch block  
            Log.e("UnknownHost", "来自服务器的数据");  
            e.printStackTrace();  
        } catch (IOException e) {  
            Log.e("IOException", "来自服务器的数据");  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
}  

需要注意的是,在Manifest.xml文件当中,需要对互联网的访问进行授权。

[html] view plain copy
<uses-permission  android:name="android.permission.INTERNET"/>  

相关文章
|
11月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 拨号连接 dip命令 使用指南
【Shell 命令集合 网络通讯 】Linux 拨号连接 dip命令 使用指南
145 0
|
27天前
|
Linux
linux命令详细说明以及案例
本文介绍了常用的 Linux 命令及其详细说明和示例,包括:`ls`(列出目录内容)、`cd`(更改目录)、`rm` 和 `mv`(删除与移动文件)、`grep`(搜索文本)、`cat`(显示文件内容)以及 `chmod`(更改文件权限)。每个命令均配有功能描述、选项说明及实际案例,帮助用户更好地掌握 Linux 命令的使用方法。
142 56
|
12天前
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
86 24
|
4天前
|
Linux
Linux命令的基本格式解析
总的来说,Linux命令的基本格式就像一个食谱,它可以指导你如何使用你的计算机。通过学习和实践,你可以成为一个真正的“计算机厨师”,创造出各种“美味”的命令。
41 15
|
15天前
|
安全 Shell Linux
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
65 2
Linux系统之su命令的基本使用
|
17天前
|
监控 数据可视化 Java
调试技巧 - 用Linux命令排查Java问题
总的来说,使用Linux命令来排查Java问题,需要一定的实践经验和理论知识。然而,只要我们愿意花时间深入了解这些工具,我们就能够熟练地使用它们来分析和解决问题。此外,这些工具只是帮助我们定位问题,真正解决问题需要我们对Java和JVM有深入的理解,并能够读懂和分析代码。
57 13
|
30天前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
71 19
|
1月前
|
Linux
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat &gt; filename` 创建新文件,`cat &gt;&gt; filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
66 5
Linux 常用文件查看命令
|
27天前
|
Linux
linux常用命令详细说明以及案例
本文介绍了Linux中几个常用的命令及其用法,包括:`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm -p`(删除目录及内容)和`mv`(移动或重命名文件/目录)。每个命令都配有详细说明、语法格式、常见选项及实用案例,帮助用户更好地理解和使用这些基础命令。内容源自[linux常用命令详细说明以及案例](https://linux.ciilii.com/show/news-285.html)。
|
2月前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
128 24
Linux系统之whereis命令的基本使用
下一篇
oss创建bucket