国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java Socket 連接 Client端 和 Server端

2019-11-15 01:11:18
字體:
來源:轉載
供稿:網友
java Socket 連接 Client端 和 Server端

Client端:

importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.InetAddress;importjava.net.Socket;importjava.net.UnknownHostException;importjava.util.Scanner;publicclassChatClient{PRivatestaticfinalStringSERVER_GhostInfo=null;ThreadtRecv=newThread(newRecvThread());publicstaticvoidmain(String[]args){newChatClient().launch();}publicvoidlaunch(){connect();tRecv.start();}publicvoidconnect(){try{socket=newSocket(SERVER_IP,SERVER_PORT);dos=newDataOutputStream(socket.getOutputStream());dis=newDataInputStream(socket.getInputStream());bConnected=true;InetAddressaddr=InetAddress.getLocalHost();Stringip=addr.getHostAddress().toString();//獲得本機IPStringaddress=addr.getHostName().toString();//獲得本機名稱hostInfo=ip+"/t"+address+"/tconnected.";System.out.println(hostInfo);dos.writeUTF(hostInfo);dos.flush();}catch(UnknownHostExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}publicvoiddisconnect()throwsIOException{try{dos.close();dis.close();socket.close();}catch(IOExceptione){}}privateclassRecvThreadimplementsRunnable{publicvoidrun(){while(bConnected){try{if(in.hasNext()){Stringtalk=in.nextLine();if(talk.equals("quit")){disconnect();bConnected=false;break;}dos.writeUTF(talk);dos.flush();}Stringtalk=dis.readUTF();System.out.println(talk);}catch(IOExceptione){e.printStackTrace();}}}}}

server端:

importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.EOFException;importjava.io.IOException;importjava.net.BindException;importjava.net.ServerSocket;importjava.net.Socket;importjava.util.ArrayList;importjava.util.List;publicclassChatServer{booleanstarted=false;ServerSocketss=null;List<Client>clients=newArrayList<Client>();publicstaticvoidmain(String[]args){newChatServer().start();}publicvoidstart(){try{ss=newServerSocket(8888);started=true;}catch(BindExceptione){System.err.println("portinuse.pleasestopprogramusingthisportandrestart.");System.exit(0);}catch(IOExceptione){e.printStackTrace();}try{while(started){Sockets=ss.accept();Clientc=newClient(s);//System.out.println("aclientconnected.");newThread(c).start();clients.add(c);}}catch(IOExceptione){e.printStackTrace();}finally{try{ss.close();}catch(IOExceptione){e.printStackTrace();}}}classClientimplementsRunnable{privateSockets;privateDataInputStreamdis=null;privateDataOutputStreamdos=null;privatebooleanbConnected=false;publicClient(Sockets){this.s=s;try{dis=newDataInputStream(s.getInputStream());dos=newDataOutputStream(s.getOutputStream());bConnected=true;}catch(IOExceptione){e.printStackTrace();}}publicvoidsend(Stringstr){try{dos.writeUTF(str);dos.flush();}catch(IOExceptione){clients.remove(this);System.out.println("aclientquit.");//e.printStackTrace();}}publicvoidrun(){try{while(bConnected){Stringstr=dis.readUTF();solveTalk(str);}}catch(EOFExceptione){System.out.println("Clientclosed!");}catch(IOExceptione){e.printStackTrace();}finally{try{if(dis!=null)dis.close();if(dos!=null)dos.close();if(s!=null){s.close();s=null;}}catch(IOExceptione1){e1.printStackTrace();}}}privatevoidsolveTalk(Stringtalk){System.out.println(talk);for(inti=0;i<clients.size();i++){Clientc=clients.get(i);c.send(talk);}}}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霸州市| 洪洞县| 固原市| 晋宁县| 汾阳市| 宁乡县| 遂平县| 新竹县| 古蔺县| 绍兴县| 徐汇区| 黎川县| 茂名市| 治县。| 邵阳市| 泸溪县| 台山市| 永嘉县| 霍林郭勒市| 临汾市| 兰坪| 济源市| 达州市| 时尚| 新乡县| 离岛区| 辽源市| 博罗县| 大新县| 增城市| 台安县| 青田县| 台州市| 岳普湖县| 石河子市| 广饶县| 察雅县| 额尔古纳市| 宜丰县| 中江县| 全南县|