1. 程式人生 > >黑馬程式設計師 【】java學習之路——TCP(三)客戶端上傳檔案到伺服器

黑馬程式設計師 【】java學習之路——TCP(三)客戶端上傳檔案到伺服器

import java.net.*;
class  TextClient
{
public static void main(String[] args) throws Exception
{
Socket s = new Socket("192.168.1.104",10010);
BufferedReader bufr = 
new BufferedReader(new FileReader("TcpDemo.java"));
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
 
 
String line = null;
while ((line = bufr.readLine())!=null)
{
out.println(line);
}
s.shutdownOutput();//關閉客戶端輸出流,相當於給流中加入結束標記啊(方式二)
out.println("over");//自定義結束標記 (結束方式一)
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = bufIn.readLine();
System.out.println(str);
bufr.close();
s.close();
}
}
class TextServer 
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(10010);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+".........connected");
DataInputStream dis = new DataInputStream(s.getInputStream());
long l = dis.readLong();


BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(new FileWriter("Server.txt"),true);
String line = null;
while ((line = bufIn.readLine())!=null)
{
if ("over".equals(line))
{
break;
} //自定義結束標記 (結束方式一)
out.println(line);
}


PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("上傳成功");
out.close();
s.close();
ss.close();

}
}






相關推薦

黑馬程式設計師 java學習——TCP客戶檔案伺服器

import java.net.*; class  TextClient {public static void main(String[] args) throws Exception{Socket s = new Socket("192.168.1.104",10010);BufferedReader b

黑馬程式設計師 java學習——TCP客戶和服務的建立

                                          ------- android培訓、java培訓、期待與您交流! ---------- 演示TCP傳輸 1:tcp分客戶端和服務端 2:客戶端對應的物件是Socket    服務端對應的是S

黑馬程式設計師 java學習——列舉小結

                                     ------- android培訓、java培訓、期待與您交流! ---------- (注:小弟剛自學一小段時間,這是我學習中的認識,簡單總結下,大神們不要拍我哈 , 說的不對之處還請指出來,多多

黑馬程式設計師 java學習——代理小結

                                          -------android培訓、java培訓、期待與您交流! ----------          第一次看代理說實話是一點也沒看懂,聽的雲裡霧裡的,沒辦法接著看第二遍吧,第二遍看完終於

黑馬程式設計師 java學習——小小的學習心得

                                               ------- android培訓、java培訓、期待與您交流! ----------              又是一個夜深人靜的晚上!這種生活已經有點習慣了!因為我已經破釜沉舟

黑馬程式設計師 java學習——網路程式設計 UDP 鍵盤錄入傳輸

import java.net.*; import java.io.*; class UdpRece2  {public static void main(String[] args) throws Exception{DatagramSocket ds = new DatagramSocket(10001)

黑馬程式設計師 java學習——GUI開始簡析

------- android培訓、java培訓、期待與您交流! ---------- 需求:實現如下視窗,功能:能夠轉到相應的碟符下顯示該盤內的內容 <span style="font-size:18px;">import java.awt.*; impor

29 Java學習NIO Selector

Selector(選擇器)是Java NIO中能夠檢測一到多個NIO通道,並能夠知曉通道是否為諸如讀寫事件做好準備的元件。這樣,一個單獨的執行緒可以管理多個channel,從而管理多個網路連線。 一. 為什麼使用Selector? 僅用單個執行緒來處理多個Channels的好處是,只需要更少的執行緒來處理

學習-RabbitMQ:RabbitMQ的入門程式

1.建立maven工程 2.分別在兩個工程中匯入依賴 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp‐client</artifactId>

Java學習0714markDown標籤的簡單使用,Java環境配置、Java基本資料型別

1、markdown標籤的簡單使用 #的使用 *的使用 >的使用 =的使用 -的使用 圖片的新增 標題#的使用,#表示一級標題,##表示是二級標題,標題內容寫在#後面 這是一級標題 這是二級標題 這是三級標題

java學習Swing篇——簡單畫板的實現v1.0

畫板功能實現: 1、直線、矩形、橢圓、多邊形、曲線等基本圖形的繪製; 2、多種顏色可選; 3、橡皮檫採用加粗畫筆,另新增一鍵清屏功能; 4、重繪功能; 5、多邊形採用兩種方式自動閉合:一種滑鼠雙擊閉合,一種為切換其它圖形自動閉合; 6、採用邊界佈局。 圖形效果:

Java學習0715變數的使用、宣告,賦值,運算子,控制語句

1、變數的使用 1、宣告變數,即根據資料型別在記憶體中申請儲存空間 2、賦值 2、變數命名規則 要求簡潔,首字母以字母、下劃線_、美元符$,後面可以是字母、下劃線、美元符任意組合,變數名須是名詞,且第一個單詞首字母小寫,後續單詞首字母大寫

學習-RabbitMQ:SpringBoot整合RabbitMQ

一:引入RabbitMQ的相關jar包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp

學習-RabbitMQ:RabbitMQ的工作模式

RabbitMQ有以下幾種工作模式 : 1、Work queues 工作佇列 2、Publish/Subscribe 釋出訂閱模式 3、Routing 路由模式 4、Topics 萬用字元模式 5、Header 6、RPC 一:Work queues 工作佇列 work queues與

Servlet學習Servlet3.0 檔案

一、注意事項 客戶端(瀏覽器) 表單的提交方法必須是post 必須有一個檔案上傳元件 <input type="file" name="file"/> 必須設定表單的enctype="multipart/form-data 伺服器 在Servelt上添

javajava學習-01-Linux基礎

x文件 字母 at命令 超過 用戶登錄 創建刪除 軟連接 nbsp tail linux學習方法: 你的程序要在服務器(linux)上執行,服務器沒有桌面系統,學習linux就是學習命令。 一、Linux介紹 1、芬蘭大學生,名字叫Linux,因為個人興趣,編寫了一個類Un

Linux學習--Mariadb3基本使用操作20---20180123

result run page 提高 進行 組成 varchar alias pan 一、MariaDB程序1、MariaDB的程序組成Client mysql:CLI交互式客戶端程序 mysqldump,mysqladmin...Server mysq

Linux學習-Nginx1介紹篇22---20180206

Nginx架構介紹 I/O介紹 一、Nginx介紹Nginx:engine X ,2002年,開源,商業版http協議:web服務器(類似於httpd)、http reverse proxy(類似於httpd)、imap/pop3 reverse proxy,tcpNGINX is a free, o

Linux學習-Nginx2安裝及配置文件篇23---20180210

Nginx編譯 Nginx yum安裝 主配置文件分析 Core functionality分 一、Nginx的安裝方法及配置介紹1、yum安裝官方: http://nginx.org/packages/centos/7/x86_64/RPMSFedora-EPEL: http

Linux學習-Nginx4模塊簡要介紹篇27---20180228

ngx_http_proxy_modu ngx_http_headers_mo ngx_http_fastcgi_mo 一、ngx_http_proxy_module模塊ngx_http_proxy_module轉發請求至另一臺主機1、proxy_pass URL;Context:location