步驟:socket
一、服務端建立ServerSocket,循環調用accept()等待客戶端鏈接;ide
二、客戶端建立socket並請求與服務端對話;this
三、服務端接收客戶端的請求,建立socket與客戶端進行專線鏈接;server
四、服務端監測是否接收到消息,長時間沒有接收到消息則關閉鏈接;資源
public class ServerSocketThread extends Thread{get
private Socket socket = null;input
public ServerSocketThread (Socket socket){
this.socket = socket;
}
@Override
public void run(){
try {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
if(bufferedReader.readLine()!=null){
String read = bufferedReader.readLine();
System.out.println(read);
System.out.println(str2HexStr(read));
}
/**
* 關閉輸出流
*/
socket.shutdownOutput();
/**
* 關閉相對應的資源
*/
outputStream.close();
bufferedReader.close();
inputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
io
public class SocketServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = null;
int clientCount = 0;
while(true){
socket = serverSocket.accept();
ServerSocketThread serverSocketThread = new ServerSocketThread(socket);
serverSocketThread.start();
clientCount++;
System.out.println("客戶端數量爲:"+clientCount);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}class