當前位置:首頁 » 編程語言 » 連接伺服器java

連接伺服器java

發布時間: 2022-06-29 12:52:18

❶ 我用java做web開發,裡面有連接伺服器資料庫的代碼,,我想實現連接伺服器這段代碼可以實現伺服器

你是要切換資料庫嗎?如果是切換資料庫可以使用spring來實現動態數據源切換;
你可以在spring中配置多個資料庫伺服器的數據源,然後通過java代碼來控制動態注入不同數據源,來實現資料庫切換

❷ java怎麼連接伺服器上的timesten資料庫

web程序在64位linux中使用64為jdk和64為weblogic中,使用java連接timesten。

連接前需配置dsn,具體配置請見 文庫 linux上2種配置dsn連接tiemsten方式

應用程序部署在64位linux上的weblogic中,需要先拷貝/etc/TimesTen/tt1121/lib/下面的幾個so文件到
64為位jdk中 /usr/jdk1.6.0_27/jre/lib/amd64/目錄,
libttclient.so
libttclient.so.gcc346
libttclient.so.gcc410
libtten.so
libttJdbcCS.so
libttJdbc.so
同時需要拷貝/etc/TimesTen/lib 中 ttjdbc6.jar 文件到應用程序的WEB-INF/lib目錄
jdk路徑和timesten路徑根據具體情況改變

web程序在64位linux中使用64為jdk和64為weblogic中,使用java連接timesten。

連接前需配置dsn,具體配置請見 文庫 linux上2種配置dsn連接tiemsten方式

應用程序部署在64位linux上的weblogic中,需要先拷貝/etc/TimesTen/tt1121/lib/下面的幾個so文件到
64為位jdk中 /usr/jdk1.6.0_27/jre/lib/amd64/目錄,
libttclient.so
libttclient.so.gcc346
libttclient.so.gcc410
libtten.so
libttJdbcCS.so
libttJdbc.so
同時需要拷貝/etc/TimesTen/lib 中 ttjdbc6.jar 文件到應用程序的WEB-INF/lib目錄
jdk路徑和timesten路徑根據具體情況改變

❸ 怎麼用java程序連接NTP伺服器

Java軟體包內在支持的網路協議為TCP/IP,也是當今最流行的廣域網/區域網協議。Java有關網路的類及介面定義在java.net包中。客戶端軟體通常使用 java.net包中的核心類Socket與伺服器的某個埠建立連接,而伺服器程序不同於客戶機,它需要初始化一個埠進行監聽,遇到連接呼叫,才與相應的客戶機建立連接。Java.net包的ServerSocket類包含了編寫伺服器系統所需的一切。下面給出ServerSocket類的部分定義。

public class ServerSocket {

public ServerSocket(int port)

throws IOException ;

public Socket accept() throws IOException ;

public InetAddress getInetAddress() ;

public int getLocalPort() ;

public void close() throws IOException ;

public synchronized void setSoTimeout

(int timeout) throws SocketException ;

public synchronized int

getSoTimeout() throws IOException ;

}

ServerSocket 構造器是伺服器程序運行的基礎,它將參數port指定的埠初始化作為該伺服器的埠,監聽客戶機連接請求。Port的范圍是0到65536,但0到 1023是標准Internet協議保留埠,而且在Unix主機上,這些埠只有root用戶可以使用。一般自定義的埠號在8000到16000之間。僅初始化了ServerSocket還是遠遠不夠的,它沒有同客戶機交互的套接字(Socket),因此需要調用該類的accept方法接受客戶呼叫。Accept()方法直到有連接請求才返回通信套接字(Socket)的實例。通過這個實例的輸入、輸出流,伺服器可以接收用戶指令,並將相應結果回應客戶機。ServerSocket類的getInetAddress和getLocalPort方法可得到該伺服器的IP地址和埠。 setSoTimeout和getSoTimeout方法分別是設置和得到伺服器超時設置,如果伺服器在timout設定時間內還未得到accept方法返回的套接字實例,則拋出IOException的異常。

Java的多線程可謂是Java編程的精華之一,運用得當可以極大地改善程序的響應時間,提高程序的並行性。在伺服器程序中,由於往往要接收不同客戶機的同時請求或命令,因此可以對每個客戶機的請求生成一個命令處理線程,同時對各用戶的指令作出反應。在一些較復雜的系統中,我們還可以為每個資料庫查詢指令生成單獨的線程,並行對資料庫進行操作。實踐證明,採用多線程設計可以很好的改善系統的響應,並保證用戶指令執行的獨立性。由於Java本身是"線程安全"的,因此有一條編程原則是能夠獨立在一個線程中完成的操作就應該開辟一個新的線程。

Java中實現線程的方式有兩種,一是生成Thread類的子類,並定義該子類自己的run方法,線程的操作在方法run中實現。但我們定義的類一般是其他類的子類,而Java又不允許多重繼承,因此第二種實現線程的方法是實現Runnable介面。通過覆蓋Runnable介面中的run方法實現該線程的功能。本文例子採用第一種方法實現線程。

二、多線程伺服器程序舉例

以下是我們在項目中採用的多線程伺服器程序的架構,可以在此基礎上對命令進行擴充。本例未涉及資料庫。如果在線程運行中需要根據用戶指令對資料庫進行更新操作,則應注意線程間的同步問題,使同一更新方法一次只能由一個線程調用。這里我們有兩個類,receiveServer包含啟動代碼(main()),並初始化ServerSocket的實例,在accept方法返回用戶請求後,將返回的套接字(Socket)交給生成的線程類serverThread 的實例,直到該用戶結束連接。

//類receiveServer

import java.io.*;

import java.util.*;

import java.net.*;

public class receiveServer{

final int RECEIVE_PORT=9090;

//該伺服器的埠號

//receiveServer的構造器

public receiveServer() {

ServerSocket rServer=null;

//ServerSocket的實例

Socket request=null; //用戶請求的套接字

Thread receiveThread=null;

try{

rServer=new ServerSocket(RECEIVE_PORT);

//初始化ServerSocket

System.out.println("Welcome to the server!");

System.out.println(new Date());

System.out.println("The server is ready!");

System.out.println("Port: "+RECEIVE_PORT);

while(true){ //等待用戶請求

request=rServer.accept();

//接收客戶機連接請求

receiveThread=new serverThread(request);

//生成serverThread的實例

receiveThread.start();

//啟動serverThread線程

}

}catch(IOException e){

System.out.println(e.getMessage());}

}

public static void main(String args[]){

new receiveServer();

} //end of main

} //end of class

//類serverThread

import java.io.*;

import java.net.*;

class serverThread extends Thread {

Socket clientRequest;

//用戶連接的通信套接字

BufferedReader input; //輸入流

PrintWriter output; //輸出流

public serverThread(Socket s)

{ //serverThread的構造器

this.clientRequest=s;

//接收receiveServer傳來的套接字

InputStreamReader reader;

OutputStreamWriter writer;

try{ //初始化輸入、輸出流

reader=new InputStreamReader

(clientRequest.getInputStream());

writer=new OutputStreamWriter

(clientRequest.getOutputStream());

input=new BufferedReader(reader);

output=new PrintWriter(writer,true);

}catch(IOException e){

System.out.println(e.getMessage());}

output.println("Welcome to the server!");

//客戶機連接歡迎詞

output.println("Now is:

"+new java.util.Date()+" "+

"Port:"+clientRequest.getLocalPort());

output.println("What can I do for you?");

}

public void run(){ //線程的執行方法

String command=null; //用戶指令

String str=null;

boolean done=false;

while(!done){

try{

str=input.readLine(); //接收客戶機指令

}catch(IOException e){

System.out.println(e.getMessage());}

command=str.trim().toUpperCase();

if(str==null || command.equals("QUIT"))

//命令quit結束本次連接

done=true;

else if(command.equals("HELP")){

//命令help查詢本伺服器可接受的命令

output.println("query");

output.println("quit");

output.println("help");

}

else if(command.startsWith("QUERY"))

{ //命令query

output.println("OK to query something!");

}

//else if …….. //在此可加入伺服器的其他指令

else if(!command.startsWith("HELP") &&

!command.startsWith("QUIT") &&

!command.startsWith("QUERY")){

output.println("Command not Found!

Please refer to the HELP!");

}

}//end of while

try{

clientRequest.close(); //關閉套接字

}catch(IOException e){

System.out.println(e.getMessage());

}

command=null;

}//end of run

啟動該伺服器程序後,可用telnet machine port命令連接,其中machine為本機名或地址,port為程序中指定的埠。也可以編寫特定的客戶機軟體通過TCP的Socket套接字建立連接

❹ java中做出的伺服器界面,怎樣連接伺服器,然後通過伺服器發送命令

可以用java socket來實現,這是最原始的,也是效率最低的(我指的是網路通信效率)
現在比較常用的是NIO技術,以及相關的開源框架,例如Mina、Netty等性能都是不錯的
有時間可以去看看,當然前提是對JAVA的IO有充分的認識。

❺ 如何用Java實現Web伺服器

如何用Java實現Web伺服器 一、HTTP協議的作用原理

WWW是以Internet作為傳輸媒介的一個應用系統,WWW網上最基本的傳輸單位是Web網頁。WWW的工作基於客戶機/伺服器計算模型,由Web 瀏覽器(客戶機)和Web伺服器(伺服器)構成,兩者之間採用超文本傳送協議(HTTP)進行通信。HTTP協議是基於TCP/IP協議之上的協議,是Web瀏覽器和Web伺服器之間的應用層協議,是通用的、無狀態的、面向對象的協議。HTTP協議的作用原理包括四個步驟:

(1) 連接:Web瀏覽器與Web伺服器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志著連接建立成功。

(2) 請求:Web瀏覽器通過socket向Web伺服器提交請求。HTTP的請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:

GET 路徑/文件名 HTTP/1.0

文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。

(3) 應答:Web瀏覽器提交請求後,通過HTTP協議傳送給Web伺服器。Web伺服器接到後,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。

❻ java中客戶端和伺服器端怎麼連接

你的不是B/S,B/S的意思是Browser(瀏覽器) Server(Web伺服器),根據你的描述,你的客戶端有3個類,服務端有2個類,是很明顯的C/S模式,這個不需要建什麼Web服務吧。

如果你想把你的程序運行起來,你首先要把服務端的代碼執行起來,怎麼執行?你把你服務端的兩個類打成一個可執行的jar包(eclipse的export命令可以幫助你打可執行jar包),然後執行javaw -jar xxxx.jar,把你的服務端程序跑起來。用同樣的方式,把你的客戶端程序跑起來就可以了。

❼ 怎麼用java代碼連接到伺服器

用Socket類去連接
String ip = "192.168.0.57";
int port=7000;
InputStream in;
OutputStream out;
Socket sock = null;
try {
sock = new Socket(ip,port);
sock.setSoTimeout(60*1000);//設置超時
this.in = sock.getInputStream();
this.out = sock.getOutputStream();
} catch (Exception e) {
throw new Exception("與終端連接失敗!");
}

❽ 怎麼實現java與伺服器連接

sqlSERVER----SERVER------CLIENT?

找好sqlserver的JDBC驅動,在SERVER中監聽埠、當有CLIENT連接時,訪問資料庫,返回給CLIENT
。。。

❾ 怎麼用java代碼連接到伺服器

首先就肯定要知道ServerSocket,服務端的服務埠以及伺服器的地址。
然後再用 Socket socket=new Socket(port,address);
最後,如果你需要接收數據之類的,就用socket.getInputStream(),發送數據用socket.getOutputStream()

❿ java中如何實現多個客戶端與伺服器連接

伺服器端可以採用多線程處理客戶請求,例如:

package threadPool;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolServer {

private int port = 8000;
private ServerSocket serverSocket;
private ExecutorService executorService; //線程池
private final int POOL_SIZE = 4; //單個CPU時線程池中的工作線程數目

public ThreadPoolServer() throws IOException{
serverSocket = new ServerSocket(port);

//創建線程池
//Runtime 的availableProcessors()方法返回當前系統CPU的數目
//系統CPU越多,線程池中的工作線程數目越多
executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);

System.out.println("伺服器已啟動!!");
}

public void service(){
while(true){
Socket socket = null;
try{
socket = serverSocket.accept();
executorService.execute(new Handler(socket));
}catch(IOException e){
e.printStackTrace();
}
}
}

public static void main(String[] args) {
try {
new ThreadPoolServer().service();
} catch (IOException e) {
e.printStackTrace();
}
}

}

class Handler implements Runnable {
private Socket socket;

public Handler(Socket socket) {
this.socket = socket;
}

private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut = socket.getOutputStream();
return new PrintWriter(socketOut, true);
}

private BufferedReader getReader(Socket socket) throws IOException {
InputStream socketIn = socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
}

public String echo(String msg) {
return "echo:" + msg;
}

@Override
public void run() {
try {
System.out.println("New connection accepted:" + socket.getInetAddress() + ":" + socket.getPort());
BufferedReader br = getReader(socket);
PrintWriter pw = getWriter(socket);

String msg = null;
while ((msg = br.readLine()) != null) {
System.out.println(msg);
pw.println(echo(msg));
if (msg.equals("bye")) {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (socket != null)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

熱點內容
銀行密碼泄露應該辦理什麼手續 發布:2024-03-29 05:01:40 瀏覽:522
sql插入二進制 發布:2024-03-29 05:00:32 瀏覽:22
安卓外部資源怎麼下載 發布:2024-03-29 04:01:17 瀏覽:245
華為被加密碼的相冊在哪裡查看 發布:2024-03-29 04:00:27 瀏覽:748
自動欣悅版有哪些配置 發布:2024-03-29 03:48:26 瀏覽:287
如何用腳本搶 發布:2024-03-29 03:01:59 瀏覽:120
火影忍者手游配置怎麼調 發布:2024-03-29 02:53:53 瀏覽:103
編程畫櫻花 發布:2024-03-29 02:11:24 瀏覽:473
騰訊雲伺服器1mb老掉線 發布:2024-03-29 01:56:11 瀏覽:215
執行sql語句的存儲過程 發布:2024-03-29 01:52:37 瀏覽:697