您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Java遠(yuǎn)程配置的服務(wù)器調(diào)試與管理方法是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java遠(yuǎn)程配置的服務(wù)器調(diào)試與管理方法是什么”吧!
1,Socket ,ServerSocket:
Socket 位于java.net.包中,這是一個(gè)對(duì)于網(wǎng)絡(luò)通信來(lái)說(shuō)及其重要的類,無(wú)論是那種語(yǔ)言,都會(huì)有Socket類的定應(yīng)用或許,存在的差異也僅僅是在表示和組織上有所不同,Socket中文稱它為套接字,javaAPI中可以查看相應(yīng)的介紹 一個(gè)ServerSocket構(gòu)造一對(duì)通信套接字方法如下
ServerSocket sr=new ServerSocket(port); Socket sc=new Socket("ip",port);
其中ServerSocket 的accpet方法十分重要,當(dāng)一個(gè)服務(wù)套接字建立之后它一直阻塞等待一個(gè)套接字的請(qǐng)求,直到建立連接。
部分計(jì)算機(jī)網(wǎng)絡(luò)的書(shū)籍對(duì)套接字有這樣的定義 套接字 =ip+port;一個(gè)套接字是由一個(gè)由一個(gè)ip地址和一個(gè)端口組成的,在網(wǎng)絡(luò)通信中的底層實(shí)現(xiàn)也的確如此,要一個(gè)進(jìn)程通信就必須為之制定工作端口,在連接端口之后才能在該端口上通信.
2, InputStream , OutputStream
當(dāng)一個(gè)套接字連接成功后就可以獲得基于這個(gè)套接字的輸入輸出流,一切數(shù)據(jù)的發(fā)送和接受都離不開(kāi)輸出輸入流,我們可以通過(guò)流封裝的方法選擇你要輸入或者輸出的數(shù)據(jù)類型,
請(qǐng)看如下例子:
這是一個(gè)完整服務(wù)器端的例子請(qǐng)仔細(xì)閱讀注釋
//Server.java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String args[])
{
ServerSocket server=null;//定義服務(wù)套接字
Socket you=null;
String s=null;
DataOutputStream out=null;//定義流
DataInputStream in=null;
try{
server=new ServerSocket(4331);/*在這里建立服務(wù)器套接字,
服務(wù)套接字的構(gòu)造方法只需要有服務(wù)端口就行,這個(gè)道理很簡(jiǎn)單*/}catch(Exception e){System.out.println(e.getMessage());}
//捕捉異常try{
System.out.println("wait.....");
you=server.accept();//在這里阻塞等待客戶的介入
out=new DataOutputStream(you.getOutputStream());//取得輸出流
in=new DataInputStream(you.getInputStream());//取得輸出流
while(true)//循環(huán)讀
{
s=in.readUTF();
int m=Integer.parseInt(s);
out.writeUTF("Hello i am server!");//發(fā)送信息
out.writeUTF("X 2:"+s);
System.out.println("Server receive :"+s);
Thread.sleep(300);//f防止組賽,沒(méi)有這一個(gè)語(yǔ)句或占用很多cpu和內(nèi)存
}
}catch(Exception e){System.out.println("Client leave!");}
}
}
上面是一個(gè)簡(jiǎn)單的服務(wù)器端程序 顯示了如何實(shí)現(xiàn)套接字的服務(wù)器構(gòu)建,下面是一個(gè)Java遠(yuǎn)程配置的客戶端
import java.io.*;
import java.net.*;
public class Client {
public static void main(String args[])
{
String s=null;
Socket mysocket;//創(chuàng)建客戶端套接字
DataInputStream in=null;
DataOutputStream out=null;
try{
mysocket=new Socket("127.0.0.1",4331);/
*注意實(shí)例化的構(gòu)造方法與服務(wù)器有什么不同*/System.out.println("localport:"+mysocket.getLocalPort());
System.out.println("localAddress:"+mysocket.
getLocalAddress());System.out.println("localSocketAddress:"+mysocket.
getLocalSocketAddress());System.out.println("Chanel:"+mysocket.getChannel());
// 上面的代碼顯示具體的通信地址端口
in=new DataInputStream(mysocket.getInputStream());
out=new DataOutputStream(mysocket.getOutputStream());
for(int k=1;k<100;kk=k+2)//循環(huán)寫入內(nèi)容
{
out.writeUTF(""+k);
s=in.readUTF();
System.out.println("客戶端接受的數(shù)據(jù)?。?quot;+s);
Thread.sleep(500);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
到此,相信大家對(duì)“Java遠(yuǎn)程配置的服務(wù)器調(diào)試與管理方法是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。