2024年6月7日发(作者:)
实验十五 Java建立一个简单的聊天程序
一 实验目的
1、 掌握 ServerSocket 类的用法;
2、 熟悉 GetInputStrea m()输入流方法的使用 ;
3、 熟悉 GetOutputStream()输出流方法的使用 。
二 实验内容
本实验是实现一个简单的聊天程序,利用 Socket 实现服务器端与客
户端的握手、连接、对话。服务器端启动后,等待客户端的连接,客
户端启动后,与服务器通信成功,如图所示。
在输入界面各输入通信内容,如下图
三 实验环境与分组
1 任意 JAVA 编程环境,推荐 eclipse;
2 两个同学一组,修改上个实验的服务器程序,并进行通讯实验。
四 实验原理
用服务器需要的端口号作为参数来创建服务器对象。
server=new
ServerSocket(4000);
这个服务器使用 4000 端口,当一个客户端程序建立一个
Socket 连接,所连接的端口号为 4000 时,服务器对象 Server 便
响应这个连接,并且 ()方法会创建一个 Socket 对
象。服务器端便可以利用这个 Socket 对象与客户进行通信。
connection=()
进而得到输入流和输出流,并进行封装:
inputS=new ObjectInputStream(utStream())
outputS=newObjectOutputStream(putStream())
相比服务器端而言,客户端要简单一些,客户端只需用服务器所
在机器的地址以及服务器的端口作为参数创建一个 Socket 对象。得
到这个对象后,就可以用“建立服务器”部分介绍的方法实现数据
的输入输出。
toclient=new Socket(ame(chatServer),4000);
inputS=new ObjectInputStream(ut Stream());
outputS= new ObjectOutputStream(putStream());
以上的程序建立了一个 Socket 对象,这个对象连接到 IP 地址
为 ame(chatServer)的主机上、端口为 4000 的
服务器对象,并且建立了输入流和输出流,分别对应服务器的输出和
客户端的写入。
本案例可支持多线程
try{
//建立服务器
ServerSocket server =new ServerSocket(9998);
int i=1
for(;;)
{
Socket incoming =();
new ServerThread(incoming,i).start();
i++;
}
}catch(IOException e){
tackTrace();
}
}
循环检测是否有客户连接到服务器上,如果有,则创建一个线程
来服务这个客户,这个线程的名称是 ServerThread,这个类扩展了
Thread 类,它的编写方法与服务器写法相同。
五 实验步骤
步骤一:需求分析
程序要求为:
1、 有聊天界面 ;
2、 客户端和服务器端都可以接收到数据并显示在聊天界面上。
步骤二:服务器端
服务器端和客户端的主要差别就是其他需要等待连接
步骤三:客户机端
步骤四:编译和执行程序
六 实验总结
编写这个简单的聊天程序可以加深对 SOCKET 的理解。同时初步
接触一下怎么样用 JAVA 来编写程序界面。
发布评论