本文目錄一覽:
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