Server(服務器端):
package TCPDemo;
/**
* 簡單的TCP通訊
*/
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
Server(){
try {
int port = 8000;
//監聽8000端口,生成監聽對象
ServerSocket server = new ServerSocket(port);
//判斷是否有人來鏈接
Socket socket = server.accept();
if(socket!=null) {
System.out.println("some thing coming");
}
//找到輸入和輸入端口,並進行封裝
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
//
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//true 代表刷新緩衝區
PrintWriter pw = new PrintWriter(os,true);
//循環發送和接收
for(int i = 0; i<10; i++) {
System.out.println("服務器");
//接收
String message = br.readLine();
System.out.println(message);
//發送
pw.println("響應服務");
Thread.sleep(2000);
}
pw.close();
br.close();
is.close();
pw.close();
isr.close();
os.close();
socket.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server();
}
}
Client(客戶端):package TCPDemo;
/**
* 簡單的TCP通訊
*/
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
Client(){
try {
//127.0.0.1 是本機,在本例中,本機即做客戶端,又做服務器
InetAddress ip= InetAddress.getByName("127.0.0.1");
//服務器的端口號
int port = 8000;
//向服務器發出鏈接請求
Socket socket = new Socket(ip,port);
//判斷是否鏈接成功
if(socket!=null) {
System.out.println("link success");
}
//找到SOCKET的輸入和輸出的接口
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
//對輸入和輸入接口進行封裝
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//true代表對緩衝區進行刷新
PrintWriter pw = new PrintWriter(os,true);
for(int i = 0; i<10; i++) {
System.out.println("客戶端");
//發送請求
pw.println("服務請求");
//接收請求
String message = br.readLine();
System.out.println(message);
Thread.sleep(2000);
}
//關閉資源
pw.close();
br.close();
is.close();
pw.close();
isr.close();
os.close();
socket.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}