客戶端輸入一串字符串 服務(wù)端反序輸出 quit退出來(lái)學(xué)習(xí)java socket編程。
1:阻塞模式
一次只能為一個(gè)客戶端服務(wù),這種使用在實(shí)際使用過(guò)程中基本沒(méi)有用處
1:阻塞模式
一次只能為一個(gè)客戶端服務(wù),這種使用在實(shí)際使用過(guò)程中基本沒(méi)有用處
package com.lei.socket.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleServer {
//啟動(dòng)服務(wù)端監(jiān)聽(tīng)
public void start(){
try{
ServerSocket server = new ServerSocket(port);
Socket client = null;
while(runFlag){
client = server.accept();//阻塞
System.out.println("accept client " + client.getInetAddress().getHostAddress());
handleClient(client);
}
server.close();
}catch(IOException e){
System.out.println("start error");
}
}
//處理客戶端請(qǐng)求
public void handleClient(Socket client){
try{
BufferedReader inReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedWriter outWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
while(true){
outWriter.write("please input String->");
outWriter.flush();
String str = inReader.readLine();
if(str.equalsIgnoreCase("quit")){
outWriter.write("quit ok");
client.close();
break;
}
else{
outWriter.write("reulst is :" + new StringBuffer(str).reverse().toString());
outWriter.write("\r\n");
}
}
}catch(IOException e){
System.out.println("Handle client error");
}
}
public static void main(String[] args){
SimpleServer s = new SimpleServer();
s.start();
}
private int port = 3000;
private boolean runFlag = true;
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleServer {
//啟動(dòng)服務(wù)端監(jiān)聽(tīng)
public void start(){
try{
ServerSocket server = new ServerSocket(port);
Socket client = null;
while(runFlag){
client = server.accept();//阻塞
System.out.println("accept client " + client.getInetAddress().getHostAddress());
handleClient(client);
}
server.close();
}catch(IOException e){
System.out.println("start error");
}
}
//處理客戶端請(qǐng)求
public void handleClient(Socket client){
try{
BufferedReader inReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedWriter outWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
while(true){
outWriter.write("please input String->");
outWriter.flush();
String str = inReader.readLine();
if(str.equalsIgnoreCase("quit")){
outWriter.write("quit ok");
client.close();
break;
}
else{
outWriter.write("reulst is :" + new StringBuffer(str).reverse().toString());
outWriter.write("\r\n");
}
}
}catch(IOException e){
System.out.println("Handle client error");
}
}
public static void main(String[] args){
SimpleServer s = new SimpleServer();
s.start();
}
private int port = 3000;
private boolean runFlag = true;
}