为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Java Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).doc

2018-03-28 6页 doc 20KB 22阅读

用户头像

is_654168

暂无简介

举报
Java Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).docJava Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).doc 一,服务端: package com.samael.socket; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io....
Java Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).doc
Java Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).doc 一,服务端: package com.samael.socket; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class MyServer { class ThGetMsg extends Thread{ @Override public void run() { if(fromClient==null) return; while(true){ try { System.out.println("Message From Client:["+fromClient.readLine()+"]"); this.sleep(50); } catch (IOException e) { break; } catch (InterruptedException e) { e.printStackTrace(); } } } } public static BufferedReader fromClient=null; public static void main(String[] args) { try { //get server socket ServerSocket server=new ServerSocket(3166); //get socket from client Socket socket=server.accept(); System.out.println("The IP["+socket.getInetAddress()+"] is connected!"); //then we will get all the streams we need //get information from keyboard BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); //get information from client fromClient=new BufferedReader(new InputStreamReader(socket.getInputStream())); Thread th=new MyServer().new ThGetMsg(); th.start(); //get printer for client PrintWriter toClient=new PrintWriter(socket.getOutputStream()); String inputContent=""; System.out.print("Typing Words And Press [Enter] To Send The Messge:"); inputContent=input.readLine(); while(!input.equals("termination")){ toClient.println(inputContent); toClient.flush(); inputContent=input.readLine(); } input.close(); toClient.close(); fromClient.close(); th.stop(); } catch (IOException e) { e.printStackTrace(); } } } 二,客户端: package com.samael.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import com.samael.socket.MyServer.ThGetMsg; public class MyClient { class ThGetMsg extends Thread{ @Override public void run() { if(fromServer==null) return; while(true){ try { System.out.println("Message From Server:["+fromServer.readLine()+"]"); this.sleep(50); } catch (IOException e) { break; } catch (InterruptedException e) { e.printStackTrace(); } } } } public static BufferedReader fromServer=null; public static void main(String[] args) { try { Socket socket=new Socket("localhost", 3166); fromServer=new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); PrintWriter toServer=new PrintWriter(socket.getOutputStream()); Thread th=new MyClient().new ThGetMsg(); th.start(); String toServerContent=""; System.out.print("Typing Words And Press [Enter] To Send The Messge:"); toServerContent=input.readLine(); while(!toServerContent.equals("termination")){ toServer.println(toServerContent); toServer.flush(); toServerContent=input.readLine(); } input.close(); toServer.close(); fromServer.close(); th.stop(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 最终效果: Server End: How? Message From Client:[Hey~buddy~Where am I?] You're In My Office Message From Client:[Really?This Is Your Office?It's So Wonderful!] For Sure Buddy! Client End: Typing Words And Press [Enter] To Send The Messge:Message From Server:[How?] Hey~buddy~Where am I? Message From Server:[You're In My Office] Really?This Is Your Office?It's So Wonderful! Message From Server:[For Sure Buddy!]
/
本文档为【Java Socket网络编程--聊天室的实现(多线程实现无需等待对方响应版本).doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索