java客戶端,java客戶端和服務端的區別

本文目錄一覽:

java寫tcp客戶端測試類該怎麼寫

1.TCP服務端的程序編寫

package test;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.ServerSocket;

import java.net.Socket;

public class MyTcp{

private BufferedReader reader;

private ServerSocket serverSocket;

private Socket socket;

/**

* 創建服務端的程序,讀取客戶端傳來的數據

*/

void getserver(){

try {

serverSocket = new ServerSocket(8998); //實例化服務端socket

System.out.println(“伺服器套接字已經創建成功”);

while (true) {

System.out.println(“等待客戶機的連接:”);

socket = serverSocket.accept(); //實例化socket對象

reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //實例化BufferReader對象

getClientMessage();

}

} catch (Exception e) {

e.printStackTrace();

}

}

private void getClientMessage() {

try {

while (true) {

System.out.println(“客戶機傳來的信息是:”+reader.readLine());

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

MyTcp myTcp = new MyTcp(); //創建本類對象

myTcp.getserver();

}

}

2.TCP客戶端程序編寫

package test;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.PrintWriter;

import java.net.Socket;

import java.nio.channels.WritableByteChannel;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.border.BevelBorder;

public class MyTcpClient extends JFrame{

private PrintWriter printWriter;

Socket socket;

private JTextField jTextField = new JTextField();

private JTextArea jTextArea = new JTextArea();

Container container;

/**

* 創建的Tcp客戶端程序

*/

public MyTcpClient (String title) {

super(title);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

container = this.getContentPane();

final JScrollPane jScrollPane = new JScrollPane();

jScrollPane.setBorder(new BevelBorder(BevelBorder.RAISED)); //顯示邊框

getContentPane().add(jScrollPane,BorderLayout.CENTER);

jScrollPane.setViewportView(jTextArea);

container.add(jTextField,”South”); //將文本框放在窗體下面

jTextField.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

printWriter.println(jTextField.getText()); //將文本框的信息寫入流(為下面的輸出流寫入信息做準備)

jTextArea.append(jTextField.getText() + “\n”);

jTextArea.setSelectionEnd(jTextArea.getText().length());

jTextField.setText(null);

}

});

}

private void connect() {

jTextArea.append(“嘗試連接中…\n”);

try {

socket = new Socket(“127.0.0.1”,8998);

printWriter = new PrintWriter(socket.getOutputStream(),true); //將printwriter中的信息流寫入到套接字的輸出流傳送給服務端

jTextArea.setText(“已完成連接\n\n”);

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

MyTcpClient myTcpClient = new MyTcpClient(“向伺服器發送數據”);

myTcpClient.setSize(500,200);

myTcpClient.setVisible(true);

myTcpClient.connect();

}

}

3.效果展示

1先將服務端的程序跑起來

2再將客戶端的程序跑起來

3.客戶端和服務端進行交互

java適合做桌面客戶端嗎

可以,但是只適合做一些小型的應用,複雜的客戶端程序程序用java不合適。做客戶端用的比較多的是C++,C++做界面的有MFC、Qt庫,還有一些輕量級庫,如duilib(這個好像也是基於MFC簡化出來的)

java客戶端與伺服器端

沒有描述清楚。按照字面理解,服務端根據客戶端發送的信息判斷是否發送文件是嗎?伺服器端根據客戶端請求的信息,如果要返迴文件,伺服器端讀取文件向客戶端寫文件,比如讀取文件向客戶端寫位元組流。客戶端肯定是不能直接訪問伺服器端文件的。如果文件是放在可以公開訪問的地址,返回地址,客戶端下載就是了。所以你的問題沒有描述清楚。

java 客戶端開發 框架有哪些

JAVA軟體開發開發框架多達幾十種,瑭錦Tanjurd總結列舉了3種最常見也是最常用方便的3種工具:

1、Struts:Struts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的

2、Spring:Spring是輕量級的J2EE應用程序框架。

3、Hibernate:Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了輕量級的對象封裝,使得Java程序員可以使用對象編程思維來操縱資料庫。Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化。它還可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用

原創文章,作者:ISAI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133142.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ISAI的頭像ISAI
上一篇 2024-10-03 23:56
下一篇 2024-10-03 23:56

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論