300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 网络编程应用:基于TCP协议【实现一个聊天程序】

网络编程应用:基于TCP协议【实现一个聊天程序】

时间:2018-11-25 04:44:25

相关推荐

网络编程应用:基于TCP协议【实现一个聊天程序】

要求:

基于TCP协议实现一个聊天程序,客户端发送一条数据,服务器端发送一条数据

客户端代码:

package Homework1;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .InetAddress;import .Socket;import .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.out.println("服务器回复:"+new String(bs,0,count));}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(os!=null){try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}

服务端:

package Homework1;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .ServerSocket;import .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 blocke.printStackTrace();}finally {if(os!=null){try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(serverSocket!=null){try {serverSocket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}

运行结果:

客户端(甲方)聊天列表:

服务器端(乙方)聊天列表:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。