国产探花免费观看_亚洲丰满少妇自慰呻吟_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);}}}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安福县| 土默特右旗| 齐齐哈尔市| 武冈市| 庆阳市| 南投县| 平顺县| 惠水县| 滦南县| 柘荣县| 庆城县| 兴文县| 天等县| 太康县| 新宁县| 卢湾区| 蓝田县| 筠连县| 南靖县| 奇台县| 淳化县| 新巴尔虎左旗| 漠河县| 阳山县| 安庆市| 郑州市| 丘北县| 长春市| 晋江市| 麦盖提县| 穆棱市| 贺州市| 保靖县| 嘉鱼县| 丽江市| 天全县| 教育| 石渠县| 曲周县| 平乡县| 慈溪市|