導航:首頁 > 配伺服器 > java程序如何與伺服器通信

java程序如何與伺服器通信

發布時間:2023-02-20 05:58:19

① 編寫java程序實現客戶端和服務端的通信

沒錯啊,編譯和運行都很正常。
你到底要實現什麼功能?

客戶端把「請求連接」轉換成byte發給伺服器,伺服器顯示列印
伺服器把「連接成功」轉換成byte發給客戶端,客戶端顯示列印,

語法一點也沒錯啊。

string.getbyte()返回的是一個byte類型的數組,你直接列印列印的是數組的地址

② java 網路編程: 如何實現客戶端與客戶端之間的之間通信

伺服器告知雙方對方的ip地址,並協調由哪一方主動連接。
如 協調結果是: 把c2的地址告訴c1,讓c1主動連接c2,讓c2打開埠等待連接。

要考慮認證問題,比如c2如何知道連接上來的是c1,而不是其他人,就需要有認證機制。
另外要考慮內網問題。由於從外部連接內網裡面的IP地址是相當繁瑣復雜的,所以需要特別的機制處理。

③ 在java網路編程中,客戶端/伺服器怎麼實現不同電腦之間的通信

1、首先兩台電腦和伺服器都在同一個網路中
2、相互之間可以用sokect<--->server
相互進行通信

④ 用java編寫Client和Server程序,實現Client和Server的數據通信。

服務端代碼:

importjava.io.IOException;
importjava.io.InputStream;
importjava.net.InetAddress;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.net.UnknownHostException;

publicclassServer{

publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{

ServerSocketserver=newServerSocket(2408,5,InetAddress.getByName("localhost"));

while(true){

//等待客戶端的連接
SocketclientSocket=server.accept();

//為每個連接的客戶端分配一個線程,與客戶端通信
newThread(newClientThread(clientSocket)).start();
}
}
}

{

privateSocketclientSocket;

publicClientThread(Socketsocket){
this.clientSocket=socket;
}

@Override
publicvoidrun(){

try{

InputStreaminput=clientSocket.getInputStream();

byte[]buffer=newbyte[1024];

booleanexit=false;

while(!exit){

intlen=input.read(buffer);
Stringmessage=newString(buffer,0,len);

if("bye".equals(message)){
exit=true;
}

System.out.println(clientSocket.getRemoteSocketAddress()+":"+message);
}

clientSocket.close();

}catch(IOExceptione){
e.printStackTrace();
}
}
}

客戶端代碼:

importjava.io.IOException;
importjava.io.OutputStream;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Scanner;

publicclassClient{

publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{

Scannerscanner=newScanner(System.in);

Socketsocket=newSocket(InetAddress.getByName("localhost"),2408);

OutputStreamoutput=socket.getOutputStream();

booleanexit=false;

while(!exit){

Stringmessage=scanner.nextLine();

if("bye".equals(message)){
exit=true;
}

byte[]data=message.getBytes();

output.write(data);
output.flush();
}

socket.close();
}
}

⑤ java rmi怎樣實現伺服器間的通信

首先要選用技術,這很明顯做個socket就行,簡單通訊,還可以擴展為非區域網的主機。

1,編寫socket伺服器端 放在主伺服器上,利用開機啟動的方式啟動server
並保持監聽某埠
2,編寫socket客戶端放在 你需要的從屬伺服器上,同樣利用開機啟動的方式
運行client,然後程序中利用 經過包裝client.getOutputStream()的流,向伺服器發送消息,就是那個ip (當字元串發,轉換為byte[])

(細節我就不介紹了…… )
3,匯總的實質就是 server 利用
client.getInputStream()的包裝流(假如叫in)
存放數據的數組,假如叫 bytep[] buf;
獲得數據 in.read(buf,0,buf.length);

然後:
File file = new File("D://log.txt");//假如是你要的log文件
FileInputStream fis =new FileInputStream(file);
fis.write(buf);

這樣就搞定了
細節注意點:由於log文件需要保留舊數據,所以寫文件的時候要注意選用Acess流進行插入。另外,當從屬伺服器關閉的時候,也要發個信息過來,把對應的ip刪除掉哦!

給我分唄

⑥ 兩java服務端之間通信方式有哪些

JAVA進程間通信的方法主要有以下幾種: (1)管道(Pipe):管道可用於具有親緣關系進程間的通信,允許一個進程和另一個與它有共同祖先的進程之間進行通信。 (2)命名管道(named pipe):命名管道克服了管道沒有名字的限制

⑦ java網路編程應該怎樣在客戶端和伺服器間實現通信

以前寫的,照貼了。。。伺服器端:import java.awt.*;x0dx0aimport java.awt.event.WindowAdapter;x0dx0aimport java.awt.event.WindowEvent;x0dx0aimport java.io.*;x0dx0aimport java.net.*;/*6、 採用UDP協議,編寫一個Java網路應用程序,該應用分伺服器端程序和客戶端程序兩部分。x0dx0a* 客戶端指定一個伺服器上的文件名,讓伺服器發回該文件的內容,或者提示文件不存在。x0dx0a* (20分)(服務端程序和客戶端程序分別命名為Server.java和Client.java)*/x0dx0apublic class N4BT6 extends Framex0dx0a{x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet ;byte[] buf ;x0dx0aFile file ;x0dx0aFileInputStream input;x0dx0aString message = "該文件不存在";x0dx0aTextArea text;x0dx0apublic N4BT6(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0ax0dx0abuf = new byte[1024];x0dx0atryx0dx0a{x0dx0asocket = new DatagramSocket(1230);x0dx0apacket = new DatagramPacket(buf, buf.length);x0dx0asocket.receive(packet);x0dx0afile = new File(new String(packet.getData()));x0dx0asocket = new DatagramSocket();x0dx0a} x0dx0acatch (Exception e)x0dx0a{e.printStackTrace();x0dx0a}x0dx0ax0dx0aif(file.exists())x0dx0a{x0dx0atryx0dx0a{x0dx0abuf = new byte[(int)file.length()];x0dx0apacket = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);x0dx0ainput = new FileInputStream(file);x0dx0ainput.read(buf);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (IOException e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0aelsex0dx0a{x0dx0atryx0dx0a{x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1234);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0ax0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6("Server");x0dx0a}x0dx0a}x0dx0a客戶端:import java.awt.*;x0dx0aimport java.awt.event.*;x0dx0aimport java.net.DatagramPacket;x0dx0aimport java.net.DatagramSocket;x0dx0aimport java.net.InetAddress;public class N4BT6_2 extends Framex0dx0a{x0dx0aTextArea text;x0dx0aString message = "Q.txt";x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet;x0dx0abyte[] buf;x0dx0apublic N4BT6_2(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0atryx0dx0a{x0dx0ax0dx0asocket = new DatagramSocket();x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1230);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0ax0dx0atryx0dx0a{x0dx0abuf = new byte[1024];x0dx0asocket = new DatagramSocket(1234);x0dx0apacket = new DatagramPacket(buf,buf.length);x0dx0asocket.receive(packet);x0dx0atext.append(new String(buf));x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6_2("Client");x0dx0a}x0dx0a}

閱讀全文

與java程序如何與伺服器通信相關的資料

熱點內容
ie文件夾禁止訪問 瀏覽:541
百川互聯網程序員 瀏覽:781
linuxpython解釋器 瀏覽:665
興安得力軟體加密狗 瀏覽:490
智能網路攝像頭加密 瀏覽:572
軟體畢業程序員培訓 瀏覽:650
安卓陀螺儀低怎麼辦 瀏覽:245
一級建造師復習題集pdf 瀏覽:901
法理學pdf海默 瀏覽:390
伺服器內存儲器是用什麼的 瀏覽:817
微幫同城分類信息源碼 瀏覽:806
安卓系統ad是什麼 瀏覽:471
python輸出中不加佔位符 瀏覽:594
linux文件夾許可權控制 瀏覽:728
雅虎郵箱怎麼加密碼 瀏覽:819
為什麼安卓手機登錄不了蘋果賬號 瀏覽:535
如何復制usb加密狗 瀏覽:799
哪個app看你微笑時很美 瀏覽:908
mac啟動命令 瀏覽:602
ngc伺服器是什麼的簡稱 瀏覽:73