資源簡介
利用Java語言實現多客戶端與服務器之間的TCP通信!

代碼片段和文件信息
package?test;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.OutputStreamWriter;
import?java.io.PrintWriter;
import?java.net.Socket;
import?java.util.Scanner;
public?class?Client?{
private?Socket?socket;
private?Scanner?scanner;
public?static?void?main(String[]?args)?{
Client?client?=?new?Client();
client.start();
}
public?Client(){
try?{
socket?=?new?Socket(“localhost“?8080);
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
public?void?start(){
try?{
ServerHandler?handle?=?new?ServerHandler();
Thread?t?=?new?Thread(handle);
t.setDaemon(true);
t.start();
//獲取socket套接字的輸出流
OutputStream?out?=?socket.getOutputStream();
OutputStreamWriter?osw?=?new?OutputStreamWriter(out?“utf-8“);
//通過現有的outputStream創建新的PrintWriter。此便捷構造方法創建必要的中間
//OutputStreamWriter后者使用默認字符編碼將字符轉換為字節
PrintWriter?pw?=?new?PrintWriter(oswtrue);
scanner?=?new?Scanner(System.in);
while(true){
pw.println(scanner.nextLine());
}
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}finally{
if(socket!=?null){
try?{
socket.close();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}
//執行服務端發送過來的數據并顯示
public?class?ServerHandler?implements?Runnable{
@Override
public?void?run()?{
try?{
//獲取socket的輸入流
InputStream?in?=?socket.getInputStream();
InputStreamReader?isr?=?new?InputStreamReader(in?“utf-8“);
BufferedReader?bf?=?new?BufferedReader(isr);
while(true){
System.out.println(bf.readLine());
}
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-04-04?16:37??TCPTest\
?????文件?????????301??2016-04-04?16:37??TCPTest\.classpath
?????文件?????????383??2016-04-04?16:37??TCPTest\.project
?????目錄???????????0??2016-04-04?16:37??TCPTest\.settings\
?????文件?????????598??2016-04-04?16:37??TCPTest\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2016-04-07?19:31??TCPTest\bin\
?????目錄???????????0??2016-04-07?19:31??TCPTest\bin\test\
?????文件????????1340??2016-04-07?19:31??TCPTest\bin\test\Client$ServerHandler.class
?????文件????????2217??2016-04-07?19:31??TCPTest\bin\test\Client.class
?????文件????????2238??2016-04-07?19:31??TCPTest\bin\test\Server$ClientHandler.class
?????文件????????2772??2016-04-07?19:31??TCPTest\bin\test\Server.class
?????目錄???????????0??2016-04-04?16:37??TCPTest\src\
?????目錄???????????0??2016-04-06?20:00??TCPTest\src\test\
?????文件????????2047??2016-04-06?21:05??TCPTest\src\test\Client.java
?????文件????????3244??2016-04-06?21:17??TCPTest\src\test\Server.java
- 上一篇:用java寫的tcp數據包發送和接收代碼
- 下一篇:java按比例實現截圖功能
評論
共有 條評論