java编程网络编程,多线程,小型聊天系统
2017-12-26 00:40
645 查看
package SocketTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; //java编程网络编程,多线程,小型聊天系统 public class Server6 { public static void main(String[] args) { new Thread(){ ServerSocket serverSocket = null;//服务器套接字定义初始化 Socket client = null;//客服端套接字初始化 OutputStream os = null;//此抽象类是表示输出字节流的所有类的超类。 InputStream is= null;//此抽象类是表示字节输入流的所有类的超类。 //从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 BufferedReader br = null; //将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 BufferedWriter bw= null; BufferedReader br1 = null; @Override public void run() { // TODO Auto-generated method stub try{ // new Date()该对象会返回当前的时间 System.out.println("服务器启动:"+new Date()); // 初始化服务器 serverSocket = new ServerSocket(8888); client =serverSocket.accept();//accept()监听客户端的连接,没有连接则处于阻塞状态 os =client.getOutputStream();//打开通往客户端的输出流,可以用来给客户端发数据 is = client.getInputStream();//打开客户端通往服务器端的输入流,用来接收来自客户端的数据 br1=new BufferedReader(new InputStreamReader(System.in)); br =new BufferedReader(new InputStreamReader(is)); bw = new BufferedWriter(new OutputStreamWriter(os)); while(true){ // 1.读客户端发来的数据 System.out.println("客户端说:"+br.readLine()); // 2.读取服务器端通过键盘输入的内容 String line =br1.readLine(); // 3.将服务器端输入的内容发送给客户端 bw.write(line); bw.newLine(); bw.flush(); if("quit".equals(line)){ break; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { serverSocket.close(); client.close(); os.close(); is.close(); br.close(); bw.close(); br1.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); } } /* 服务器启动:Tue Dec 26 00:34:41 CST 2017 客户端说:服务器你好 你也好 客户端说:我收到了 好的 客户端说:quit quit */
package SocketTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client6 { public static void main(String[] args) { // TODO Auto-generated method stub Socket client=null; OutputStream os = null; InputStream is= null; BufferedReader br = null; BufferedWriter bw= null; BufferedReader brServer=null; try { // 连接服务器,通过ip和端口号 client = new Socket("127.0.0.1",8888); os =client.getOutputStream();//打开通往客户端的输出流,可以用来给客户端发数据 is = client.getInputStream();//打开客户端通往服务器端的输入流,用来接收来自客户端的数据 // 从键盘读取一行字符串 br =new BufferedReader(new InputStreamReader(System.in)); // 将字符串发送到Server1服务器端 bw =new BufferedWriter(new OutputStreamWriter(os)); brServer = new BufferedReader(new InputStreamReader(is)); System.out.println("-----------开始聊天-------------"); while(true){ // 1.读取客户端通过键盘输入的内容 String line =br.readLine(); // 2.将客户端输入的内容发送给服务器 bw.write(line); bw.newLine(); bw.flush(); if("quit".equals(line)){ break; } // 3.读server服务器发来的数据 System.out.println("服务器说:"+brServer.readLine()); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { client.close(); os.close(); is.close(); br.close(); bw.close(); brServer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } /* -----------开始聊天------------- 服务器你好 服务器说:你也好 我收到了 服务器说:好的 quit */
相关文章推荐
- java多线程以及java网络编程实现简单的聊天系统
- java网络socket编程(七)之java中NIO实现聊天系统的群聊功能
- Java网络编程基础(六)— 基于TCP的NIO简单聊天系统
- java网络socket编程(八)之java中BIO实现聊天系统的群聊功能
- Java网络编程基础(四)---基于TCP的简单聊天系统
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- Java_常瑞鹏 java_网络编程实现一个 聊天程序
- java 基TCP的多线程 网络编程
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程实现一个聊天程序
- Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
- JAVA 网络编程 UDP(聊天程序)
- 【Java的Socket网络编程以及多线程】
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- java 网络编程【6】 用UDP编写网络聊天程序 以及 TCP编程实例
- Java的Socket网络编程以及多线程
- 18天Java学习---Java的Socket网络编程以及多线程
- java 聊天程序 socket网络编程
- Java_乔晓松_Java网络编程UDP实现黑窗口聊天
- java网络编程一:模拟qq聊天功能,实现一对一聊天