
服务器端当然是必备的,安装数据库管理系统DBMS和数据库;客户端一般都是安装的,且安装在网络上的其他客户端的机器上,客户端包括执行SQL的SQLPlus工具和数据库连接的配置工具;如果要开发基于C/S方式的应用,则客户端是必须安装的,因为客户端提供数据库连接的必要文件(数据库连接器);如果开发基于B/S等三层或多层的数据库,则客户端是可以不安装,但是数据库的客户端(数据库连接器)必须安装在中间层的应用服务器或Web服务器上。
1、C/S架构,如果是采用TCP协议,需要服务器、也需要客户端
2、C/S架构,如果采用UDP协议,一般不需要服务器,只是采用面向无连接的类似客户端程序彼此发送,一般用于多媒体通讯
3、B/S架构,WEB 服务器是必要的,而此时的“客户端”你可以简单理解为浏览器,实际上它们采用的是>
下面是我自己写的一个读取并显示txt文件的demo,希望对您有帮助。
public class Client {
public static void main(String[] args) {
ClientFrame f = new ClientFrame();
}
}
import javaawtBorderLayout;
import javaawtContainer;
import javaawtDimension;
import javaawtGridLayout;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioIOException;
import javanetSocket;
import javanetUnknownHostException;
import javautilVector;
import javaxswingBorderFactory;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJList;
import javaxswingJScrollPane;
import javaxswingJTextArea;
import javaxswingeventListSelectionEvent;
import javaxswingeventListSelectionListener;
public class ClientFrame extends JFrame implements ActionListener, ListSelectionListener{
private JList list = null;
private JButton sbtn = null;
private JButton cbtn = null;
private Vector v = null;
private JTextArea txt = null;
private Container control = null;
private Container btn = null;
private Socket client = null;
private DataInputStream reader = null;
private DataOutputStream writer = null;
public ClientFrame(){
thislist = new JList();
thislistsetBorder(BorderFactorycreateTitledBorder("文件列表"));
thislistaddListSelectionListener(this);
thissbtn = new JButton("显示");
thissbtnaddActionListener(this);
thiscbtn = new JButton("清除");
thiscbtnaddActionListener(this);
thiscontrol = new Container();
thiscontrolsetPreferredSize(new Dimension(150, 400));
thiscontrolsetLayout(new BorderLayout());
thiscontroladd(new JScrollPane(thislist),BorderLayoutCENTER);
thisbtn = new Container();
thisbtnsetLayout(new GridLayout(1,2));
btnadd(sbtn);
btnadd(cbtn);
thiscontroladd(thisbtn,BorderLayoutSOUTH);
thistxt = new JTextArea();
thistxtsetEditable(false);
thistxtsetSize(350, 400);
thissetTitle("客户端");
thissetSize(500, 400);
thissetVisible(true);
Dimension displaySize = ToolkitgetDefaultToolkit()getScreenSize();
thissetLocation((displaySizewidth - thisgetWidth()) / 2, (displaySizeheight - thisgetHeight()) / 2);
thissetLayout(new BorderLayout());
thisadd(thiscontrol,BorderLayoutWEST);
thisadd(new JScrollPane(thistxt),BorderLayoutCENTER);
thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
try {
//thisclient = new Socket("1921683234",6666);
thisclient = new Socket("1921681100",6666);
thisreader = new DataInputStream(clientgetInputStream());
thiswriter = new DataOutputStream(clientgetOutputStream());
} catch (UnknownHostException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
}
public void actionPerformed(ActionEvent event){
if(eventgetSource() == sbtn){
if(v == null){
v = new Vector();
}
else{
vclear();
}
try {
writerwriteUTF("getfilelist");
writerflush();
String t = readerreadUTF();
while( t != null && !tequals("")){
vadd(t);
t = readerreadUTF();
}
} catch (UnknownHostException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
thislistsetListData(v);
}
if(eventgetSource() == cbtn){
thistxtsetText("");
}
}
public void valueChanged(ListSelectionEvent e) {
int i = thislistgetSelectedIndex();
if (! thislistgetValueIsAdjusting() && i != -1) {
try {
writerwriteUTF("getfilecontent_" + i);
writerflush();
String tmp = readerreadUTF();
thistxtsetText(tmp);
} catch (IOException e1) {
e1printStackTrace();
}
}
}
}
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioFile;
import javaioFileInputStream;
import javaioIOException;
import javaioInputStreamReader;
import javaioReader;
import javanetServerSocket;
import javanetSocket;
import javautilArrayList;
import javautilIterator;
public class Server {
static ArrayList<File> fileArray = new ArrayList<File>();
public static void main(String args[]) {
ServerSocket server = null;
Socket client = null;
String cmd = "";
try {
server = new ServerSocket(6666);
client = serveraccept();
DataInputStream reader = new DataInputStream(clientgetInputStream());
DataOutputStream writer = new DataOutputStream(clientgetOutputStream());
while(true){
cmd = readerreadUTF();
Systemoutprintln(cmd);
if(cmdequals("getfilelist")){
fileArrayclear();
//fileArray = getFile(new File("D:/tmp"));
fileArray = getFile(new File("D:/学习/教程/学习笔记"));
String fn = "";
for(int k = 0; k < fileArraysize(); k ++){
fn = fileArrayget(k)getName();
writerwriteUTF(fn);
writerflush();
}
writerwriteUTF("");
}
if(cmdstartsWith("getfilecontent_")){
int i = IntegerparseInt(cmdsplit("_")[1]);
File f = fileArrayget(i);
Reader in = new InputStreamReader(new FileInputStream(f));
int tempbyte;
String str = "";
while ((tempbyte = inread()) != -1) {
str += (char)tempbyte;
//Systemoutprintln(str);
}
inclose();
writerwriteUTF(str);
}
}
} catch (IOException e) {
eprintStackTrace();
}
}
private static ArrayList<File> getFile(File f) {
File[] ff = flistFiles();
for (File child : ff) {
if (childisDirectory()) {
getFile(child);
} else {
fileArrayadd(child);
}
}
return fileArray;
}
}
C/S B/S
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过>
分类: 电脑/网络 >> 互联网
解析:
URL:
URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Inter上用来描述信息资源的字符串,主要用在各种> >
本身的含义不同,执行的功能不同,脚本语言的不同。
1、本身的含义不同:客户端(client,或称为用户端)是响应服务器向客户提供本地服务的程序。而服务器端(server),从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(例如一个PC对服务器端外提供ftp服务,那么也可以被叫为服务器)。
2、执行的功能不同:客户端应该理解为C/S,即通过向客户机上写一些程序,保证即使服务器端出现故障或者维护时候,客户端依然可以在保证工作的前提下、实现脱机工作。服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根本出发点的差异决定了服务器应该具备比PC更可靠的持续运行能力、更强大的存储能力和网络通信能力,同时,对数据相当敏感的应用还要求服务器提供数据备份功能。
3、脚本语言的不同:客户端脚本语言中,有些是作为客户端脚本语言来运行的,它们由客户端的解释器来解释,如VBScript、Javascrip、JScript等都可以作为客户端脚本语言,当它们嵌入到HTML文件中时,即可以按照顺序被执行或者响应某个事件而对事件做出应答。而另外一些作为服务端脚本语言来运行的,如PHP、CGI、JSP等,它们由服务端的解释器来解释,当作为服务端脚本语言来运行时,它们主要生成HTML内容,也可以生成客户端脚本,当被传到客户端的浏览器时,这些客户端脚本代码也可以被解释实现特定的功能。
实现的方法和详细的 *** 作步骤如下:
1、第一步,打开计算机上的eclipse软件,然后依次单击左上角的“File”-->“New”-->“Project”选项,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,通过搜索找到Web项目,输入关键字web,可以快速查询该Web项目,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,创建Web项目时,输入项目名称,然后完成构建,继续 *** 作,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,可以在Web项目中创建一个jsp文件,然后在“New”选项下选择“Other”选项来创建jsp文件,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,在文档的新界面中,选择“jsp File”选项,输入jsp文件的名称,然后将创建一个空的jsp文件模板,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,如果indexjsp是Web项目中的主页,则默认情况下,系统将在访问期间搜索indexjsp文件,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,就获得了想要的结果了,见下图。这样,就解决了这个问题了。
以上就是关于oracle 一定要安装客户端和服务器端吗两个安装程序有什么不同全部的内容,包括:oracle 一定要安装客户端和服务器端吗两个安装程序有什么不同、一个网络应用程序是否必须包含两部分:服务器端程序和客户端程序、java编写一个客户/服务器程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)