當前位置:首頁 » 雲伺服器 » 如何構建基於伺服器的客戶端

如何構建基於伺服器的客戶端

發布時間: 2022-07-18 02:25:54

『壹』 易語言如何創造個互聯網的伺服器客戶端。

ftp搭建一個伺服器並且監視正確的埠

『貳』 C#, WCF如何創建一個簡單的伺服器端和客戶端程序

首先VS中的模板WCF SERVICE APP 項目,是一個承載到IIS的服務,用過web service就清楚,部署都差不多。

客戶端引用wcf服務,知道url地址就行了,客戶端添加服務引用,和添加以前的web service差不多。
客戶端使用到服務端的數據模型,在服務端定義實體類時,添加 datacontract屬性和datamember屬性就ok.
推薦一些教程地址,可以選擇了看看,你提到的這些問題在教程中都有涉及到。
1,WCF系列學習5天速成 http://www.cnblogs.com/huangxincheng/category/340145.html
2,WCF入門學習【Sheldon_Lou】http://www.cnblogs.com/sheldon-lou/category/648478.html
3,無廢話WCF系列教程 http://www.cnblogs.com/iamlilinfeng/category/415833.html
4,WCF編程 http://www.cnblogs.com/zxj159/category/604460.html
5,WCF入門【停留的風】http://www.cnblogs.com/yank/category/568085.html
6,WCF初探【wangweimutou】http://www.cnblogs.com/wangweimutou/tag/WCF/
7,WCF【指尖流淌】http://www.cnblogs.com/jianliutang/category/277163.html
8,WCF【xfrog】---重點 http://www.cnblogs.com/xfrog/tag/WCF/

『叄』 如何在區域網實現建立起服務端和客戶端或是用軟體來建立

用微軟的IIS6.0之類的做伺服器伺服器。

或者用apache之類的開源軟體做伺服器端。

這兩種軟體都是b/s結構的模式。

『肆』 客戶端伺服器的體系結構

文件共享架構, 在此之前是基於PC網路伺服器使用的文件共享架構,下載文件的共享位置的桌面環境。客戶端的工作,然後在桌面環境中運行。此體系結構的工作僅當共享使用率較低,更新競爭是低的,要傳輸的數據量是低的。在20世紀90年代,PC LAN(區域網)的計算,因為容量的文件共享是過度緊張的在線用戶數的增長。 由於這些限制的文件共享架構,客戶機/伺服器體系結構的出現。
客戶機/伺服器體系結構, 這種方法介紹了由資料庫伺服器,文件伺服器更換。使用關系資料庫管理系統,可以直接回答用戶查詢。客戶機/伺服器體系結構的顯著降低網路流量,提供查詢響應,而不是總的文件傳輸。它通過一個GUI前端允許多用戶更新到共享資料庫。遠程過程調用(RPC)或標準的查詢語言(SQL)語句通常用於客戶端和伺服器之間的通信。 以下是客戶機/伺服器體系結構的例子。
1) 在兩層客戶機/伺服器體系結構的兩層架構,用戶界面被放置在用戶的桌面環境,通常在一台伺服器,這是一個更強大的機器提供服務的許多客戶資料庫管理系統服務。拆分信息處理系統之間的用戶界面環境的資料庫管理伺服器環境。資料庫管理伺服器支持存儲過程和觸發器。軟體供應商提供的應用程序開發工具,以簡化的兩層客戶機/伺服器體系結構。
2)三層架構 的三層體系結構,克服缺點的兩層結構。在三層體系結構,中間件之間使用用戶系統介面的客戶端環境和資料庫管理伺服器環境。這些中間件實現在各種方式,如事務處理監視器,消息伺服器或應用程序伺服器。的中間件進行排隊,執行應用程序和資料庫升級的功能。此外,中間件增加了調度和優先順序的工作正在進行中。三層客戶機/伺服器體系結構,以提高性能為大量的用戶,也兩層的方法相比,提高了靈活性。三層架構的缺點是,開發環境是比較困難的使用比兩層的應用程序的發展。
3)消息伺服器的三層。 在這種體系結構中,消息非同步處理和優先順序。消息有頭,包括優先順序信息,地址和身份證號碼。消息伺服器的關系型資料庫管理系統和其他數據源的鏈接。郵件系統是無線基礎設施的替代。
4)三層與應用程序伺服器 體系結構允許的應用程序運行在一個共享主機,而不是在用戶介面的客戶端環境的主體。應用程序伺服器共享業務邏輯,計算和數據檢索引擎。在這種體系結構中,應用程序的可擴展性和一台伺服器上安裝成本比維持在桌面上的客戶端使用 客戶機/伺服器體系結構,用於工業以及軍事。他們提供了一個靈活的架構,允許插入新的技術更容易比早期版本的軟體設計。

『伍』 客戶端/伺服器端模型的實現

為實現數據共享、數據更新的便利,系統採用了客戶端/伺服器端模型,伺服器端具有修改數據的許可權,客戶端只能瀏覽查看數據,這樣也能保證數據的安全性。

由於 MapX 本來只作為單機版的控制項,並未提供讀取網路空間數據的能力,所以客戶端/伺服器端模型必須純粹通過 VB 來實現。

圖 5. 3 文本鏈接文件和視頻鏈接文件的顯示

圖 5. 4 圖片鏈接文件的顯示

客戶端/伺服器端模型在礦山內部區域網內運行,所以必須保證區域網的暢通,各計算機能相互訪問。客戶端的數據有版本日期標志,客戶端提供了更新數據的操作介面,當伺服器端的數據更新後,客戶端將從伺服器端下載最新數據,覆蓋掉本地的數據,同時更新數據的版本標志。具體實現如下。

在伺服器端先要運行批處理命令:

net share map $ = App. path & " map" / unlimited / remark: " 礦山安全管理信息系統" 。

然後在 VB 中編碼,具體關鍵代碼如下:

Kill APPPATH & " map" & File1. List( i)

FileCopy " " & ServerName & " map $ " & File1. List( i) ,APPPATH & " tempmap "& File1. List( i)

ProgressBar1. value = ProgressBar1. value + 1

DoEvents』釋放 CPU,防止程序不響應

由於網路病毒的泛濫,很多計算機都安裝了防火牆軟體。防火牆軟體在阻止外界入侵的同時,也關閉了很多系統的網路服務。如果防火牆軟體關閉了系統的默認共享服務,則系統將出現找不到伺服器的錯誤。這時系統將採用第二種方案來傳輸數據,具體函數如下:

煤礦安全地理信息系統設計與開發

『陸』 基於tcp的伺服器端和客戶端怎麼建立連接

首先 客戶端向伺服器發出請求 然後 伺服器確認收到的請教,並發送信號給客戶端 最後 客戶端收到信號後, 建立連接 並開始傳送數據

『柒』 基於java socket的伺服器客戶端編程

要完成這個工作,需要完成三個部分的工作,以下依次說明:

一、建立伺服器類

Java中有一個專門用來建立Socket伺服器的類,名叫ServerSocket,可以用伺服器需要使用的埠號作為參數來創建伺服器對象。

ServerSocket server = new ServerSocket(9998)

這條語句創建了一個伺服器對象,這個伺服器使用9998號埠即在埠9998上注冊服務,這里稍微要注意的是埠的分配必須是唯一的。因為埠是為了唯一標識每台計算機唯一服務的,另外埠號是從0~65535之間的,前1024個埠已經被Tcp/Ip 作為保留埠,因此你所分配的埠只能是1024個之後的。當一個客戶端程序建立一個Socket連接,所連接的埠號為9998時,伺服器對象server便響應這個連接,並且server.accept()方法會創建一個Socket對象。伺服器端便可以利用這個Socket對象與客戶進行通訊。

Socket incoming = server.accept() ; // 監聽窗口,等待連接

進而得到輸入流和輸出流,並進行封裝

BufferedReader in = new BufferedReader(new

InputStreamReader(incoming.getInputStream()));

/*

當讀取文件時,先把內容讀到緩存中,當調用in.readLine()時,再從緩存中以字元的方式讀取數據(以下簡稱「緩存位元組讀取方式」)。

*/

PrintWriter ut = new PrintWriter(incoming.getOutputStream(),true);

隨後,就可以使用in.readLine()方法得到客戶端的輸入,也可以使用out.println()方法向客戶端發送數據。從而可以根據程序的需要對客戶端的不同請求進行回應。

在所有通訊結束以後應該關閉這兩個數據流,關閉的順序是先關閉輸出流,再關閉輸入流,即使用

out.close();

in.close();

二、建立客戶端代碼

相比伺服器端,客戶端要簡單一些,客戶端只需用伺服器所在機器的ip以及伺服器的埠作為參數創建一個Socket對象。得到這個對象後,就可以用"建立伺服器"部分介紹的方法實現數據的輸入和輸出。

Socket socket = new Socket("168.160.12.42",9998);

或:

Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主機名為InetAddress.getLocalHost()的伺服器申請連接

客戶機必須知道有關伺服器的IP地址,對於著一點Java也提供了一個相關的類InetAddress 該對象的實例必須通過它的靜態方法來提供,它的靜態方法主要提供了得到本機IP 和通過名字或IP直接得到InetAddress的方法。

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

out = new PrintWriter(socket.getOutputStream(),true);

以上的程序代碼建立了一個Socket對象,這個對象連接到ip地址為168.160.12.42的主機上、埠為9998的伺服器對象。並且建立了輸入流和輸出流,分別對應伺服器的輸出和客戶端的寫入。

三、實例分析

服務方:

import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678); //在埠5678上注冊服務
Socket client=server.accept(); // 監聽窗口,等待連接
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));

BufferedReader serverInput=new BufferedReader(new InputStreamReader(System.in));
PrintWriter ut=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine(); //// 讀取從client傳來的數據信息

str = serverInput.readLine(); // 讀取用戶鍵盤輸入的字元串
System.out.println(str); //伺服器控制台輸出數據信息
out.println("has receive...."); //伺服器向客戶端發送信息:has receive....
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
}

這個程序的主要目的在於伺服器不斷接收客戶機所寫入的信息只到,客戶機發送"End"字元串就退出程序,並且伺服器也會做出"Receive"為回應,告知客戶機已接收到消息。

客戶機代碼:

import java.net.*;
import java.io.*;

public class Client{
static Socket server;

public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678); // 向主機名為InetAddress.getLocalHost()的伺服器申請連接
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream())); //客戶端建立輸入流並進行封裝
PrintWriter ut=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in)); //客戶端從鍵盤輸入信息

while(true){
String str=wt.readLine(); //客戶端讀取(獲得)鍵盤的字元串

String str1=in.readLine(); // 從伺服器獲得字元串
out.println(str); //客戶端向伺服器發送信息
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}

客戶機代碼則是接受客戶鍵盤輸入,並把該信息輸出,然後輸出"End"用來做退出標識。

這個程序只是簡單的兩台計算機之間的通訊,如果是多個客戶同時訪問一個伺服器呢?你可以試著再運行一個客戶端,結果是會拋出異常的。那麼多個客戶端如何實現呢?

其實,簡單的分析一下,就可以看出客戶和服務通訊的主要通道就是Socket本身,而伺服器通過accept方法就是同意和客戶建立通訊.這樣當客戶建立Socket的同時。伺服器也會使用這一根連線來先後通訊,那麼既然如此只要我們存在多條連線就可以了。那麼我們的程序可以變為如下:

伺服器:

import java.io.*;
import java.net.*;

public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while(true){
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter ut=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
}
}

這里僅僅只是加了一個外層的While循環,這個循環的目的就是當一個客戶進來就為它分配一個Socket直到這個客戶完成一次和伺服器的交互,這里也就是接受到客戶的"End"消息.那麼現在就實現了多客戶之間的交互了。但是.問題又來了,這樣做雖然解決了多客戶,可是是排隊執行的。也就是說當一個客戶和伺服器完成一次通訊之後下一個客戶才可以進來和伺服器交互,無法做到同時服務,那麼要如何才能同時達到既能相互之間交流又能同時交流呢?很顯然這是一個並行執行的問題了。所以線程是最好的解決方案。

那麼下面的問題是如何使用線程.首先要做的事情是創建線程並使得其可以和網路連線取得聯系。然後由線程來執行剛才的操作,要創建線程要麼直接繼承Thread要麼實現Runnable介面,要建立和Socket的聯系只要傳遞引用就可以了.而要執行線程就必須重寫run方法,而run方法所做的事情就是剛才單線程版本main所做的事情,因此我們的程序變成了這樣:

import java.net.*;
import java.io.*;

public class MultiUser extends Thread{
private Socket client;

public MultiUser(Socket c){
this.client=c;
}

public void run(){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter ut=new PrintWriter(client.getOutputStream());
//Mutil User but can't parallel
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}catch(IOException ex){
}finally{
}
}

public static void main(String[] args)throws IOException{
ServerSocket server=new ServerSocket(5678);
while(true){
//transfer location change Single User or Multi User
MultiUser mu=new MultiUser(server.accept());
mu.start();
}
}
}

我的類直接從Thread類繼承了下來.並且通過構造函數傳遞引用和客戶Socket建立了聯系,這樣每個線程就有了。一個通訊管道.同樣我們可以填寫run方法,把之前的操作交給線程來完成,這樣多客戶並行的Socket就建立起來了。

『捌』 如何搭建一個與Android客戶端交互的伺服器

android客戶端和伺服器端是基於IntentService的,具體如下:
後台使用簡單的servlet,支持GET或POST。這個servlet最終返回給前台一個字元串flag,值是true或false,表示登錄是否成功。
然後在安卓的ADT上創建一個安卓項目,建立兩個Activity,分別作為登錄界面和登錄成功界面。
HTTP的訪問公共類,用於處理GET和POST請求。
IntentService服務,用於在後台以隊列方式處理耗時操作。
在AndroidManifest.xml中注冊IntentService。注意uses-permission節點,為程序開啟訪問網路的許可權。
登陸界面處理,注意按鈕監聽事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個Activity。在onCreate()中,動態注冊接收廣播類的實例receiver。在接收廣播類中,不要使用完畢後忘記注銷接收器,否則會報一個Are you missing a call to unregisterReceiver()? 的異常。

『玖』 如何建立區域網內客戶端和伺服器連接

點擊,我的計算機,遠程設置里打勾,這台機器就可以做為伺服器,讓其他的機器遠程到他

『拾』 在windows系統中,建立一個基於tcp方式的客戶端伺服器應用的基本過程是什麼樣的

首先 客戶端向伺服器發出請求
然後 伺服器確認收到的請教,並發送信號給客戶端
最後 客戶端收到信號後, 建立連接 並開始傳送數據

熱點內容
c語言稀疏矩陣轉置矩陣 發布:2025-02-01 03:47:57 瀏覽:530
坦克世界掛機腳本有哪些 發布:2025-02-01 03:07:41 瀏覽:133
串口編程at 發布:2025-02-01 03:06:05 瀏覽:908
合資汽車配置有什麼 發布:2025-02-01 02:56:07 瀏覽:78
wifi共享精靈源碼 發布:2025-02-01 02:40:15 瀏覽:973
java軟體怎麼安裝 發布:2025-02-01 02:40:09 瀏覽:549
河北稅務局電子密碼是什麼 發布:2025-02-01 02:40:07 瀏覽:835
檢查伺服器設置是什麼意思 發布:2025-02-01 02:31:26 瀏覽:185
神偷四第四章密碼是多少 發布:2025-02-01 02:07:29 瀏覽:13
qq登錄在哪個文件夾 發布:2025-02-01 01:57:59 瀏覽:627