java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)
package cn.wang;
import java.io.*;
import java.net.*;
public class Server {
static int num = 1;//客戶端計數
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket server = null;
Socket client = null;
while(true) {
try {
server = new ServerSocket(4444);
//綁定端口,監聽客戶端
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Error:"+e);
}
try {
client = server.accept();
//與客戶端建立連接
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("接受請求失敗!");
System.exit(-1);
}
System.out.println("Client["+Server.num+"]登錄...");
ServerThread st = new ServerThread(client);
Thread t= new Thread(st);
//監聽到客戶端,為他創建線程,主程序返回繼續監聽
t.start();
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("關閉失敗!");
}
num++;
}
}
public static class ServerThread implements Runnable{
private Socket client;
public ServerThread(Socket client) {
this.client = client;
}
public void run() {
try {
BufferedReader is = new BufferedReader(new InputStreamReader(client.getInputStream()));
//將從客戶端接受的信息存放到緩存is中
PrintWriter os = new PrintWriter(client.getOutputStream());
//從socket獲取客戶端的輸出流,通過os向客戶端發送消息
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
//建立緩存,為后面輸入數據做準備
System.out.println("Client:"+is.readLine());
//打印客戶端發來的信息
String inputString = sin.readLine();
//從鍵盤輸入信息,存放在inputString中
while(inputString!=null&&inputString.trim().equals("quit")){
os.println(inputString);
//os.println向客戶端發送消息,內容是inputString
os.flush();
//刷新輸出流,使client馬上得到該信息
System.out.println("Server發送的信息為:"+inputString);
//打印服務器向客戶端發送的信息
System.out.println("Client發來的信息為:"+is.readLine());
//打印客戶端發來的信息
inputString = sin.readLine();
//繼續讀入數據
}
os.close();//關閉Socket輸出流
is.close();//關閉Socket輸入流
client.close();//關閉Socket
System.out.println("通信結束!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
總結
以上是生活随笔為你收集整理的java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 极致性能升级!32g内存电脑组装攻略大揭
- 下一篇: java上传文件至nas_使用JCIFS