java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)
package cn.wang;
import java.io.*;
import java.net.*;
public class Server {
static int num = 1;//客戶端計(jì)數(shù)
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket server = null;
Socket client = null;
while(true) {
try {
server = new ServerSocket(4444);
//綁定端口,監(jiān)聽客戶端
} 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("接受請(qǐng)求失敗!");
System.exit(-1);
}
System.out.println("Client["+Server.num+"]登錄...");
ServerThread st = new ServerThread(client);
Thread t= new Thread(st);
//監(jiān)聽到客戶端,為他創(chuàng)建線程,主程序返回繼續(xù)監(jiān)聽
t.start();
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("關(guān)閉失敗!");
}
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向客戶端發(fā)送消息
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
//建立緩存,為后面輸入數(shù)據(jù)做準(zhǔn)備
System.out.println("Client:"+is.readLine());
//打印客戶端發(fā)來的信息
String inputString = sin.readLine();
//從鍵盤輸入信息,存放在inputString中
while(inputString!=null&&inputString.trim().equals("quit")){
os.println(inputString);
//os.println向客戶端發(fā)送消息,內(nèi)容是inputString
os.flush();
//刷新輸出流,使client馬上得到該信息
System.out.println("Server發(fā)送的信息為:"+inputString);
//打印服務(wù)器向客戶端發(fā)送的信息
System.out.println("Client發(fā)來的信息為:"+is.readLine());
//打印客戶端發(fā)來的信息
inputString = sin.readLine();
//繼續(xù)讀入數(shù)據(jù)
}
os.close();//關(guān)閉Socket輸出流
is.close();//關(guān)閉Socket輸入流
client.close();//關(guān)閉Socket
System.out.println("通信結(jié)束!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 极致性能升级!32g内存电脑组装攻略大揭
- 下一篇: X99主板配什么内存?内存频率、容量、品