服务器没有图形界面,图像输出到客户端

服务器没有图形界面,图像输出到客户端,第1张

可以,先说下原理,Unix的图形系统被称作X Windows System,属于CS结构,负责显示图形是X Server服务器,图形应用程序作为客户端向图形服务器发出请求,X Server负责按照请求显示图形。因此将X Server运行在其它计算机中,再用欲安装oracle的服务器当做客户端执行dbca等命令,这时图形将显示在运行X Server的那台计算机中,键盘鼠标的输入也可使用X Server的那台计算机。
一般步骤:
1 在远程计算机中启动X Server,windows下有许多免费软件可用,Unix中找个有图形界面的计算机即可。
2 ssh或telnet登录欲安装Oracle的服务器,执行如下命令
$ export DISPLAY=XXXXXXXXXXXX:10 ---------XXXXXXXXXXXX代表运行X Server的服务器的IP
$ dbca

以windows下的XManager举例,可使用XStart配置

服务器端和客户端的区别:

1、定义不同:

客户端:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。

服务器端:服务器端,从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对服务器端外提供ftp服务,也可以叫服务器)。

2、程序编写:

客户端:客户端程序不需要我们编写,可以使用IE或者FireFox等浏览器。

服务器端:需要编写Server服务端程序。

3、组成不同:

客户端:浏览器既是客户端。

服务器端:中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。

4、储存方式不同:

客户端:不需要储存。

服务器端:包括SAS/SATA、PCIe闪存卡、NVMe闪存和双列直插式内存插槽的实现在内有多种方式部署服务器端闪存。

5、服务对象不同:

客户端:使用客户服务。

服务器端:为客户端服务。

参考资料:

百度百科:服务器端

百度百科:客户端

三次握手,四次挥手。
第一次握手:客户端向服务器端发送连接请求包SYN,等待服务器回应;
第二次握手:服务器端收到客户端连接请求包SYN后,将客户端的请求包SYN放入到自己的未连接队列,此时服务器需要发送两个包给客户端;
(1)向客户端发送确认自己收到其连接请求的确认包ACK,向客户端表明已知道了其连接请求
(2)向客户端发送连接询问请求包SYN,询问客户端是否已经准备好建立连接,进行数据通信;即在第二次握手时服务器向客户端发送ACK和SYN包,此时服务器进入SYN-RCVD状态。
第三次握手:客户端收到服务器的ACK和SYN包后,知道了服务器同意建立连接,此时需要发送连接已建立的消息给服务器;向服务器发送连接建立的确认包ACK,回应服务器的SYN告诉服务器,我们之间已经建立了连接,可以进行数据通信。ACK包发送完毕,服务器收到后,此时服务器与客户端进入ESTABLISHED状态,开始进行数据传送。
TCP四次挥手过程
断开一个tcp连接需要“四次挥手”
第一次:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发送数据了,但是,此时,主动关闭方依然可以接收数据。
第二次:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1
第三次:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我已经发完了,不会再给你发数据了。
第四次:主动关闭方收到FIN后,发送一个ACK给对方,确认序号为收到序号+1,至此,四次挥手完成。

import javaio;
import javautil;
import javanet;
public class Client { //客户端
public static void main(String args[])throws Exception
{
String clientMessage;//来自用户输入的的信息
String serverMessage; //服务器端的信息
Socket ClientSocket=new Socket("127000",5557);//参数是本机地址和端口,客户端套接字,发起TCP连接
BufferedReader fromUser=new BufferedReader(new InputStreamReader(Systemin));//字符读取流,获取从键盘输入的字符
BufferedReader fromServer=new BufferedReader(new InputStreamReader(ClientSocketgetInputStream()));//获取从服务器端的流,建立套接字输入流
DataOutputStream toServer=new DataOutputStream(ClientSocketgetOutputStream());//建立套接字输出流
clientMessage=fromUserreadLine();//读取从用户的输入
toServerwriteBytes(clientMessage);//写到服务器端
serverMessage=fromServerreadLine();//从服务器端读取
ClientSocketclose();//关闭套接字连接
}
}
import javaio;
import javanet; //服务器端
public class Server {
public static void main(String args[])throws Exception
{
String ClientMessage;
String ServerMessage;
ServerSocket serversocket=new ServerSocket(5557);//端口要和客户端对应
Systemoutprintln("正在监听5555端口");//
while(true)
{
Socket collection=serversocketaccept();//调用accept()函数,建立TCP连接
DataInputStream fromClient=new DataInputStream(collectiongetInputStream());
DataOutputStream toClient=new DataOutputStream(collectiongetOutputStream());
ClientMessage=fromClientreadUTF();//接收来自客户端的信息
ServerMessage=ClientMessagetoUpperCase();//转换为大写
toClientwriteBytes(ServerMessage);//写到服务器端
Systemoutprintln("成功建立TCP连接");
}
}
}

首先要明白什么叫流结束,对于读取文件流,读到文件末尾算结束,
但对于socket流,把某次写入到该流的字符读取完能认为该socket流结束吗?
不能,因为这个流还存在,即使流中已经没有数据,但仍然可以继续写出和读入,那么程序自然会继续读流,而流真正的结束就是关闭


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13384937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存