新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java多客戶端通信服務(wù)端代碼介紹
Java 多客戶端通信在很多人看來是一項(xiàng)很繁瑣的工作,其實(shí)我們?cè)诰帉懘a的時(shí)候只要是注意留心Java 多客戶端通信的源代碼就能發(fā)現(xiàn),我們認(rèn)為枯燥的東西其實(shí)都很簡單。

創(chuàng)新互聯(lián)成立于2013年,先為錫山等服務(wù)建站,錫山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為錫山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
來看服務(wù)端的代碼:
- import java.net.*;
- import java.io.*;
- import java.util.*;
- public class Jserver3 {
- private ServerSocket server;
- List sManager = new ArrayList();
- public Jserver3(){}
- void startServer() //運(yùn)行服務(wù)器
- {
- try
- {
- server=new ServerSocket(719);
- System.out.println("服務(wù)器套接字已創(chuàng)建成功!");
- while(true)
- {
- Socket socket=server.accept();
- System.out.println("已經(jīng)與客戶端連接");
- new J_Thread(socket).start();
- sManager.add(socket);
- System.out.println("當(dāng)前客戶端連結(jié)數(shù):"+sManager.size());
- }
- }catch(Exception e){}finally
- {
- try
- {
- server.close();
- }catch(Exception e){}
- }
- }
- public static void main(String[] args) {
- Jserver3 server=new Jserver3();
- server.startServer();
- }
- class J_Thread extends Thread //與客戶端進(jìn)行通信的線程類
- {
- Socket socket; //套接字引用變量
- private DataInputStream reader; //套接字輸入流
- private DataOutputStream writer; //套接字輸出流
- J_Thread(Socket socket) //構(gòu)造函數(shù)
- {
- this.socket=socket;
- }
- public void run()
- {
- try
- {
- reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流
- writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流
- String msg;
- while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數(shù)據(jù)
- {
- //向客戶端發(fā)送信息
- writer.writeUTF("您的情書已經(jīng)收到");
- writer.flush();
- System.out.println("來自客戶端:"+msg);
- }
- }catch(Exception e){}finally
- {
- try
- {
- sManager.remove(socket); //刪除套接字
- //關(guān)閉輸入輸出流及套接字
- if(reader!=null)reader.close();
- if(writer!=null)writer.close();
- if(socket!=null)socket.close();
- reader=null;
- writer=null;
- socket=null;
- System.out.println("客戶端離開");//向屏幕輸出相關(guān)信息
- System.out.println("當(dāng)前客戶端的連接數(shù):"+sManager.size());
- }catch(Exception e){}
- }
- }
- }
- }
- import java.net.*;
- import java.io.*;
- import java.util.*;
- public class Jserver3 {
- private ServerSocket server;
- List sManager = new ArrayList();
- public Jserver3(){}
- void startServer() //運(yùn)行服務(wù)器
- {
- try
- {
- server=new ServerSocket(719);
- System.out.println("服務(wù)器套接字已創(chuàng)建成功!");
- while(true)
- {
- Socket socket=server.accept();
- System.out.println("已經(jīng)與客戶端連接");
- new J_Thread(socket).start();
- sManager.add(socket);
- System.out.println("當(dāng)前客戶端連結(jié)數(shù):"+sManager.size());
- }
- }catch(Exception e){}finally
- {
- try
- {
- server.close();
- }catch(Exception e){}
- }
- }
- public static void main(String[] args) {
- Jserver3 server=new Jserver3();
- server.startServer();
- }
- class J_Thread extends Thread //與客戶端進(jìn)行通信的線程類
- {
- Socket socket; //套接字引用變量
- private DataInputStream reader; //套接字輸入流
- private DataOutputStream writer; //套接字輸出流
- J_Thread(Socket socket) //構(gòu)造函數(shù)
- {
- this.socket=socket;
- }
- public void run()
- {
- try
- {
- reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流
- writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流
- String msg;
- while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數(shù)據(jù)
- {
- //向客戶端發(fā)送信息
- writer.writeUTF("您的情書已經(jīng)收到");
- writer.flush();
- System.out.println("來自客戶端:"+msg);
- }
- }catch(Exception e){}finally
- {
- try
- {
- sManager.remove(socket); //刪除套接字
- //關(guān)閉輸入輸出流及套接字
- if(reader!=null)reader.close();
- if(writer!=null)writer.close();
- if(socket!=null)socket.close();
- reader=null;
- writer=null;
- socket=null;
- System.out.println("客戶端離開");//向屏幕輸出相關(guān)信息
- System.out.println("當(dāng)前客戶端的連接數(shù):"+sManager.size());
- }catch(Exception e){}
- }
- }
- }
- }
嘎嘎 在這段代碼里,服務(wù)端MM為每一個(gè)連接的客戶端GG分配一個(gè)單獨(dú)的線程,而每一個(gè)線程里都持有對(duì)應(yīng)的客戶端GG的Java 多客戶端通信對(duì)象。SO,通過這些多線程,服務(wù)端MM就練就了一心N用的功力,可以同時(shí)接受N個(gè)客戶端GG發(fā)來的情書了(,真的太賤了。。。。)
客戶端的代碼和上面的客戶端代碼一模一樣的,這里就不多說啦!
當(dāng)前文章:Java多客戶端通信服務(wù)端代碼介紹
文章來源:http://m.5511xx.com/article/cdjcpij.html


咨詢
建站咨詢
