《计算机网络通信》课程设计报告(4)
网络系统集成课程结业论文(报告)
}
Node node=userInfoList.find(i); if(node==null) {i++; } try {
node.output.writeObject(\聊天信息\); node.output.flush();
node.output.writeObject(msg); node.output.flush(); continue;
2.5 客户端主框类的实现
客户端主框架类实现了人机交互、用户登录、用户下线和聊天信息的发送功能。
客户端的主框架类为ClientFrame,其构造函数完成为客户端控件的添加、控件位置的调整、控件初始状态的设定以及控件事件侦听函数的添加。成员函数LogIn完成用户登录功能,LogOut完成用户下线功能,SendMessage用于发送聊天信息。
public void SendMessage() {
String toSomebody=combobox.getSelectedItem().toString(); String status=\;
if(checkbox.isSelected()) {
status=\悄悄话\; }
String action=actionlist.getSelectedItem().toString(); String message=textfield.getText(); if(socket.isClosed()) { } try {
output.writeObject(\聊天信息\);//发送聊天信息标识
output.flush();
output.writeObject(toSomebody);//发送聊天对象 output.flush();
output.writeObject(status);//发送聊天状态 output.flush();
output.writeObject(action);//发送聊天表情 output.flush();
output.writeObject(message);//发送聊天信息内容 return;
output.flush();
- 8 -
网络系统集成课程结业论文(报告)
2.6
客户端接收线程类的实现
客户端接收线程类需要接收服务器发来的信息,并对该信息进行分析,执行相应的
操作。客户端收到的服务器信息有三种——聊天信息和系统信息、用户列表信息、服务关闭信息。客户端将接收到聊天信息和系统信息显示在界面上,接收到用户信息就对信息进行分析,获取在线用户列表,显示在界面组合框中,接收到关闭信息,则执行关闭操作。
命名客户端接收线程类为ClientReceiveThread,实现接收服务器信息的功能,主要在run函数中实现该类的功能。
public void run()//线程执行体
{sendUserList();
while(!isStop&&!client.socket.isClosed())//若套接字没有关闭,则一直执行循环体
{
try{
String type=( String)client.input.readObject();//读取服务器发送的聊天信息
if(type.equalsIgnoreCase(\聊天信息\)) { //处理聊天信息
String toSomebody=( String)client.input.readObject();//获取系统信息内容 String status=( String)client.input.readObject(); String action=( String)client.input.readObject(); String message=( String)client.input.readObject();
String msg=client.username+action+\对\+toSomebody+ \说\+message+\;//显示信息
3 附:源程序
- 9 -
附 录
参考文献
【Java语言与面向对象程序设计】 【Java编程案例解析】 【计算机网络通信教程】
附 录
- 10 -
附 录
(宋体小四号,1.25倍行距)(要求:附录的有无根据情况需要而定,内容一般包括正文内不便列出的冗长公式推导、符号说明(含缩写)、计算机程序、图纸、表格等。附录中有程序源代码的因篇幅限制可酌情考虑内容的字号。)
//用户信息链表类 import java.net.*; import java.io.*; public class Node { }
import javax.swing.*; import java.net.*; import java.io.*;
public class UserInfoList {
Node root; Node pointer; int count;
public UserInfoList() { }
root=new Node(); root.next=null; pointer=null; count=0;
String username=null; Socket socket=null;
ObjectOutputStream output=null; ObjectInputStream input=null; Node next=null;
public void add(Node n)
- 11 -
{
pointer=root;
附 录
}
public int getCount() { }
public Node find(String username) {
if (count==0)return null; pointer=root;
while (pointer.next!=null) {
pointer=pointer.next;
if (pointer.username.equalsIgnoreCase(username)) {
- 12 -
return count;
while (pointer.next!=null) { }
if (pointer.next==n) { }
pointer=pointer.next;
pointer.next=n.next; count--; break;
while(pointer.next!=null) }
public void del(Node n) {
pointer=root; {
pointer=pointer.next; }
pointer.next=n; n.next=null; count++;
…… 此处隐藏:931字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




