《Java程序设计》第三次作业:网络编程

import java.io.*;      
import java.net.*;      
      
public class ChatClient {      
    public static void main(String args[]){      
        try{      
            Socket socket   =   new Socket("127.0.0.1",4000);      
            System.out.println("输入你要说的话,如果要退出输入bye");      
            BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));      
            PrintWriter os =new PrintWriter(socket.getOutputStream());      
            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));      
            String readline;      
            readline = sin.readLine();      
            while(! readline.equals("bye")){      
                os.println(readline);      
                os.flush();      
                System.out.println("Client:"+readline);      
                System.out.println("Server:"+is.readLine());      
                readline=sin.readLine();      
            }      
            os.close();      
            is.close();      
            socket.close();      
                  
        }catch(Exception e){      
            System.out.println("Error"+e);      
        }      
    }      

}      


import java.io.*;      
import java.net.*;      
import java.applet.Applet;      
      
@SuppressWarnings("unused")      
public class ChatServer {      
    public static void main(String args[]){      
        try{      
            ServerSocket server=null;      
            try{      
                server = new ServerSocket(4000);      
                System.out.println("准备好了,退出输入bye");      
            }catch(Exception e){      
                System.out.println("can't listen to:"+e);      
            }      
            Socket socket = null;      
            try{      
                socket=server.accept();      
                      
            }catch(Exception e){      
                System.out.println("Error."+e);      
            }      
            String line;      
            BufferedReader is =new BufferedReader(new InputStreamReader(socket.getInputStream()));      
            PrintWriter os = new PrintWriter(socket.getOutputStream());      
            BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));      
            System.out.println("Client:"+is.readLine());      
            line = sin.readLine();      
            while(! line.equals("bye")){      
                os.println(line);      
                os.flush();      
                System.out.println("Server:"+line);      
                System.out.println("Client:"+is.readLine());      
                line = sin.readLine();      
            }      
            os.close();      
            is.close();      
            socket.close();      
            server.close();      
        }catch(Exception e){      
            System.out.println("Error:"+e);      
        }      
    }      
      
}      


运行结果:




shut+sock号禁言 free+sock号恢复禁言 to+sock号+内容 私聊 西南科技大学网络程序设计综合实验,八说了,开冲 2实验目的 锻炼按照软件工程过程对实际用进行分析、设计和编程的能力; 综合运用在本课程与相关课程中学过的知识,结合实际工程用环境,在设计 过程中加深对相关知识的掌握和对网络编程技术的理解。 3实验内容 实验题目一:网络聊天程序设计(可选) 实验要求 1、分析典型网络聊天用软件(如QQ、MSN等)的实现原理,模拟设计一套网络聊 天程序,必须实现以下功能: ①按照C/S结构分别设计服务端程序和客户端程序; ②服务端通过图形用户界面实现对服务器的控制,负责维护用户帐户和用户群,并维 护用户信息、维持客户端之间的端对端通信和群聊通信、适时维护用户在线信息,并能够发 送广播消息。 2、增加尽可能多的功能,用户界面友好,操作简便,代码设计遵从程序设计规范, 易读性强,对关键过程和代码进行标注说明。 3、程序设计过程遵从软件工程规范,有需求分析、系统设计和详细设计过程,有相 的规范化说明文档。 实验提示 1、客户端之间的通信是通过服务器进行转发的,对于两个客户端,服务器需要创建 两个套接字分别维持与客户端之间的连接。当客户端需要向另一个客户发送消息时,它首先 将消息发送到服务器,由服务器根据目标用户帐户转发到目标主机。 2、群聊是采用多播技术实现的,也可以采用单播技术实现,但是服务器开销会增加。 具体说来,若采用组播技术,当服务端收到来自一个客户端的消息后,向预先分配的该组组 播地址转发该消息。若采用单播技术,服务端需要向该组内的所有客户端一一转发该消息。 3、广播消息通过广播方式发送由服务端创建的消息。 4、服务端根据客户的连接和断开情况,实时向其它客户端发送用户在线信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值