java TCP入門程式設計(檔案傳送、服務端接收多個客戶端請求)
檔案傳送
服務端 FileServer
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(10086);
Socket accept = serverSocket.accept();
System.out.println("建立連線");
InputStream inputStream = accept.getInputStream();
FileOutputStream fileOutputStream=new FileOutputStream("D:\\Test\\hello.txt");
byte[] bytes=new byte[1024*4];
int count=0;
while ((count=inputStream.read(bytes))!=-1){
fileOutputStream.write(bytes,0,count);
}
fileOutputStream.close();
inputStream.close();
accept.close();
serverSocket.close();
System.out.println("接收完成");
}
}
客戶端 FileClient
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) throws IOException {
Socket socket=new Socket("192.168.182.1",10086);
OutputStream outputStream = socket.getOutputStream();
FileInputStream fileInputStream=new FileInputStream("D:\\Test\\init.txt");
byte[] bytes=new byte[1024*4];
int count=0;
while ((count=fileInputStream.read(bytes))!=-1){
outputStream.write(bytes,0,count);
}
fileInputStream.close();
outputStream.close();
socket.close();
System.out.println("傳送完畢");
}
}
測試:通過測試可以實現檔案的傳送。
服務端接收多個客戶端請求
服務端 ChatServerSocket
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServerSocket {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(10086);
while (true){
//如果沒有客戶請求,則阻塞
Socket accept = serverSocket.accept();
System.out.println("客戶:"+accept.getInetAddress()+" 進來了");
//當獲取到客戶端的連線時就會往下走,開啟一個執行緒用來接收資料
new Thread(new Runnable() {
@Override
public void run() {
InputStream inputStream = null;
try {
inputStream = accept.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,"utf-8"));
while(true){//一直接收客戶端資料
String readLine = bufferedReader.readLine();
if(readLine==null||readLine.equals("0")){ //退出迴圈
break;
}
System.out.println("客戶:"+accept.getInetAddress()+"說:"+readLine);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
inputStream.close();
accept.close();
System.out.println("客戶"+accept.getInetAddress()+":退出了");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
}
客戶端 ChatClientSocket
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class ChatClientSocket {
public static void main(String[] args) throws IOException {
Socket socket=new Socket("192.168.182.1",10086);
OutputStream outputStream = socket.getOutputStream();
BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(outputStream,"utf-8"));
Scanner scanner=new Scanner(System.in);
while (true){
String next = scanner.next();
bufferedWriter.write(next);
bufferedWriter.newLine();
bufferedWriter.flush();
if(next.equals("0")){
break;
}
}
bufferedWriter.close();
socket.close();
}
}
測試,我們將客戶端分別在本機與虛擬機器上開啟進行測試:
幫助到您請點贊關注收藏謝謝!!!
相關文章
- TCP程式設計之服務端和客戶端的開發TCP程式設計服務端客戶端
- golang實現tcp客戶端服務端程式GolangTCP客戶端服務端
- 001 Rust 網路程式設計,實現 TCP 服務端和客戶端程式Rust程式設計TCP服務端客戶端
- Python 網路程式設計-TCP服務端基礎篇(一)簡單的傳送和接收Python程式設計TCP服務端
- 服務端如何獲取客戶端請求IP地址服務端客戶端
- python建立tcp服務端和客戶端PythonTCP服務端客戶端
- 從客戶端向服務端發起請求(3種)客戶端服務端
- Qt實現基於多執行緒的檔案傳輸(服務端,客戶端)QT執行緒服務端客戶端
- 前端傳送的請求,是如何請求到後端服務的?前端後端
- SpringBoot系列之服務端解析客戶端國際化請求Spring Boot服務端客戶端
- Java後端請求想接收多個物件入參的資料方法Java後端物件
- jmeter 傳送 UDP 請求,怎麼接收伺服器返回的 TCP 服務資料JMeterUDP伺服器TCP
- 服務端,客戶端服務端客戶端
- 客戶端,服務端客戶端服務端
- Java入門:TCP協議傳送/接收資料實現JavaTCP協議
- 檔案下載之斷點續傳(客戶端與服務端的實現)斷點客戶端服務端
- 基於c語言的TCP客戶端、服務端基礎程式碼C語言TCP客戶端服務端
- Netty入門系列(1) --使用Netty搭建服務端和客戶端Netty服務端客戶端
- 服務端和客戶端 RESTful 介面上傳 Excel 的 Python 程式碼服務端客戶端RESTExcelPython
- python向後端Flask服務傳送檔案並在後端處理Python後端Flask
- socket實現服務端多執行緒,客戶端重複輸入服務端執行緒客戶端
- 利用程序池給客戶端傳檔案客戶端
- TCP協議服務端和客戶端的連線與通訊TCP協議服務端客戶端
- Java設計模式-16、命令模式-請求傳送者與接收者解耦Java設計模式解耦
- TCP通訊客戶端和服務端簡單程式碼實現TCP客戶端服務端
- 服務端渲染和客戶端渲染服務端客戶端
- websocket(多個客戶端)Web客戶端
- 求一段python3服務端及客戶端的例子Python服務端客戶端
- 一個端到端的基於 form 表單的檔案上傳程式,包含客戶端和伺服器端ORM客戶端伺服器
- Go基於gRPC實現客戶端連入服務端GoRPC客戶端服務端
- Java服務端和客戶端開發輔助工具UtilsJava服務端客戶端
- 043-socket程式設計傳送GET請求程式設計
- TodoKit客戶端/服務端原始碼都放出來了,有興趣的可以看看,請求指教客戶端服務端原始碼
- Java網路程式設計--UDP傳送接收資料Java程式設計UDP
- 「iOS」行車服務app 「客戶端、後端思路+程式碼」iOSAPP客戶端後端
- SSRF 服務端請求偽造服務端
- TCP服務端TCP服務端
- Java網路程式設計:QQ郵件傳送客戶端程式設計Java程式設計客戶端