网络编程应用:基于TCP协议【实现一个聊天程序】
2017-05-04 11:07
866 查看
要求:
客户端代码:
服务端:
运行结果:
客户端(甲方)聊天列表:
服务器端(乙方)聊天列表:
基于TCP协议实现一个聊天程序,客户端发送一条数据,服务器端发送一条数据
客户端代码:
package Homework1; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Client { public static void main(String[] args){ System.out.println("客户端已启动"); Socket socket=null; InputStream is=null; OutputStream os=null; try { //1.创建客户端套接字Socket对象 socket=new Socket("Localhost", 8888); //2.创建与Socket对接的输入输出流对象 is=socket.getInputStream(); os=socket.getOutputStream(); //3.创建聊天用的Scanner对象 Scanner input=new Scanner(System.in); byte[] bs=new byte[1024]; //4.给服务器(乙方)发送信息 while(true){ //输入要发送的数据 String string=input.next(); //将数据传输出去 os.write(string.getBytes()); os.flush(); //如果有一方回复了:bye,则表示聊天结束 if(string.equals("bye")){ break; } //5.接收服务器(乙方)回复的消息 int count=is.read(bs); if(new String(bs,0,count).equals("bye")){ break; } System.o 1072b ut.println("服务器回复:"+new String(bs,0,count)); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(os!=null){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(is!=null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
服务端:
package Homework1; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Server { public static void main(String[] args){ System.out.println("服务端已启动"); ServerSocket serverSocket=null; InputStream is=null; OutputStream os=null; try { //1.创建服务器端ServerSocket对象 serverSocket=new ServerSocket(8888); //2.得到Socket对象 socket=serverSocket.accept(); //3.得到与Socket对应的输入输出流 is=socket.getInputStream(); os=socket.getOutputStream(); //4.创建聊天使用的Scanner对象 Scanner input=new Scanner(System.in); byte[] bs=new byte[1024]; while(true){ //5.接收客户端(甲方)信息 int count=0; count=is.read(bs); //如果客户端回复了:bye,表示结束聊天 if(new String(bs,0,count).equals("bye")){ break; } System.out.println("客户端说:"+new String(bs,0,count)); //6.回复客户端(甲方) String string=input.next(); os.write(string.getBytes()); os.flush(); if(string.equals("bye")){ break; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(os!=null){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(is!=null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
运行结果:
客户端(甲方)聊天列表:
服务器端(乙方)聊天列表:
相关文章推荐
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 网络编程应用:基于UDP协议【实现聊天程序】--练习
- Java_常瑞鹏 java_网络编程实现一个 聊天程序
- java网络编程实现一个聊天程序
- 网络编程学习笔记二(实现一个基于简单TCP的用户注册程序)
- {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
- 网络编程应用:基于TCP协议【实现对象传输】--练习
- java网络编程实现一个聊天程序
- 网络编程应用:基于TCP协议【实现文件上传】--练习
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- java 基于网络编程的聊天小程序
- 网络编程:以一个聊天程序结束这个学习。
- Java网络编程 - 基于UDP协议 实现简单的聊天室程序
- java网络编程(三):一个类似QQ的聊天程序
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- linux网络编程:用C语言实现的聊天程序(同步通信)
- socket编程-- 基于TCP协议的网络程序
- JAVA网络编程实现基于TCP协议的时间服务(向服务器查询当前时间)
- linux网络编程:用C语言实现的聊天程序(异步通信)