当前位置:文档之家› java聊天小程序课程设计

java聊天小程序课程设计

java聊天小程序课程设计
java聊天小程序课程设计

Java语言程序设计

课程设计

题目聊天小程序(socket编程+多线程)

学院商学院

专业信息管理与信息系统

班级信息111

学号 8

学生姓名张语轩

指导教师余法红

编写日期

目录

一、需求分析 (1)

二、系统概述 (2)

三、系统运行环境 (3)

四、功能需求描述 (3)

五、总体设计 (4)

六、系统模块结构图 (4)

七、程序模块设计(程序代码设计与分析、运行结果) (4)

八、设计体会 (15)

九、参考文献 (15)

一、需求分析

当今主流的聊天工具有QQ,UC,MSN Messenger等,国内最热门的当属QQ,腾讯QQ (OICQ)是由深圳市腾讯计算机系统公司开发的,基于Internet的即时聊天工具。您可

以使用QQ和好友用户进行交流,信息即时发送,即时回复,收发及时、功能全面。此外QQ还具有BP机网上寻呼、聊天室、传输文件、语音邮件、手机短讯服务等功能,QQ不仅仅是虚拟的网络寻呼机,更可与传统的无线寻呼网、GSM移动电话的短消息系统互联,目前QQ和全国多家寻呼台、移动通信公司有业务合作。是国内不可多得的中文网络寻呼机。QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000操作系统下运行,是十分灵活的网络寻呼工具。它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。当您的通讯录中的网友在线时,QQ中朋友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。

虽然以上这些软件是免费的,并且功能越来越强大。但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。

本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。

二、系统概述

我们实现的是局域网中的聊天功能,运行服务程序后,服务器创建成功,然后使服务器对某一个设定的端口处于监听状态,当有客户端请求建立连接时,服务器就可接受请求,建立连接!这样服务器和客户端就可相互发送消息,实现聊天功能!

系统的功能要求:

A.服务器端主要功能如下:

1.在特定端口上进行侦听,等待客户端连接。

2.用户可以配置服务器端的侦听端口,默认端口为8888。

3.向已经连接到服务器端的用户发送系统消息。

4.统计在线人数。

5.当停止服务时,断开所有的用户连接。

B.客户端的主要功能如下:

1.连接到已经开启聊天服务的服务器端。

2.用户可以配置要连接的服务器端的IP地址和端口号。

3.用户可以配置连接后显示的用户名。

4.当服务器端开启的话,用户可以随时登录和注销。

5.用户可以向所有人或某一个人发送消息。

三、系统运行环境

本程序基于java和Eclipse开发环境,可以在一般的装有windows系统的主机上运行。

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform 则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。

四、功能需求描述

本系统针对局域网进行联机聊天。聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。本系统主要实现如下功能:其界面主要采用了包,包以及包等。程序实现了聊天室的基本功能,其中有:

1、启动服务器。

2、进入客户端界面。

3、登录聊天室。

4、发送信息(实现按回车键发送消息)。

5、关闭服务器。

服务器:

在特定端口上进行侦听,等待客户端连接。

向已经连接到服务器端的用户发送系统消息。

当停止服务时,断开所有的用户连接。

系统运行稳定、安全可靠。

一台主机只能启动一个服务器。

客户端:

连接到已经开启聊天服务的服务器端。

当服务器端开启后,用户可以发表聊天信息。

用户可以向所有人或某一个人发送消息。

系统运行稳定、安全可靠。

五、 总体设计

聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:

在Internet 上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP 环境下,实现服务器端和客户端两部分程序。

1.首先通过继承JFrame 类构造服务器界面。

2.设计客户端程序使其能够完成正常的通信功能

3.设计侦听程序,使其显示登录的ip 地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。

六、 系统模块结构图

主要功能框架如下图所示:

七、 程序模块设计(程序代码设计与分析、运行结果)

代码: ()

package chat; import .*;

public class ActionProcess implements Runnable { 下线

通服务器 连接服服务器上线通发送消退 出 群

聊 私 聊

用户发送连接退 出

客户端 服务器 客户端A 客户端E 客户端D 客户端C 客户端B

private ChatClient client;

String name="";

String sendtoname="";

String sendtoID;

String filename="";

String filepath="";

public ActionProcess(ChatClient client) {

=client;

}

public void action(ActionEvent e)throws Exception{

if()==

{

try

{

else

{

String addr=("请输入服务器IP:");

InetAddress address=(addr);

InetSocketAddress socketAddress=new InetSocketAddress(address,5555); =new Thread(this);

}

}

catch(IOException ee){}

}

if()==

{

try

{

filesendServer filesendserver=new filesendServer();

();

}

catch (Exception ee) {

();

}

}

if()=={

try {

filesendClient filesendclient=new filesendClient();

();

}catch (Exception ee){}

}

if()==

{

try {

} catch (IOException e1) {

();

}

(0);

}

if ("表情")) {

em = "";

} else {

em += "着";

}

if()==

{

if(s!=null)

{

try

{

}

catch(IOException e1){}

}

}

}

if()==

{

sendtoID=("请输入对方ID:"); sendtoname=("请输入对方姓名:"); if(s!=null)

{

try

{

}

catch(IOException e1){}

}

}

}

}

public void run()

{

String s=null;

while(true)

{

try

{

}

catch(IOException e)

{

try

{

}

catch(Exception ep){}

break;

}

}

}

}

(2)

package chat;

import .*;

import .*;

import .*;

import .*;

public class Client {

public static void main(String args[])

{

new ChatClient();

}

}

class ChatClient extends Frame implements ActionListener, Runnable{ public Button listen,connection,sendtoall,sendtoone,exit,filesend; public JComboBox emote;

public TextField inputName,inputContent;

public TextArea chatResult;

public Socket socket=null;

public DataInputStream in=null;

public DataOutputStream out=null;

public Thread thread;

ChatClient()

{

socket=new Socket();

Box box1=();

listen=new Button("作为服务器监听");

connection=new Button("连接服务器");

filesend=new Button("发送文件");

exit=new Button("退出");

sendtoall=new Button("群聊");

sendtoone=new Button("私聊");

(false);

(false);

(false);

(false);

inputName=new TextField(6);

(new Color(162,231,250));

inputContent=new TextField(22);

(new Color(162,231,250));

chatResult= new TextArea("", 17,20,;

(new Color(162,231,250));

JLabel jlname=new JLabel("输入昵称");

(jlname);

(inputName);

(listen);

(connection);

(filesend);

(exit);

Box box2=();

emote = new JComboBox();

(new DefaultComboBoxModel(new String[] { "表情", "微笑", "甜笑", "惊喜", "嘻嘻", "扮酷", "嘿嘿", "傻笑", "好奇", "媚眼", "鬼脸", "陶醉", "害羞", "生气", "嚷嚷", "发怒", "伤心", "高明", "菜鸟", "问号", "狂笑", "大哭", "示爱", "呻吟", "想想" }));

(false);

JLabel jlintput = new JLabel("输入聊天内容");

(jlintput);

(inputContent);

(emote);

(sendtoall);

(sendtoone);

(this);

(this);

(this);

(this);

(this);

(this);

Box box3=();

(chatResult);

thread=new Thread(this);

Box box0=();

(10));

(box1);

(10));

(box3);

(10));

(box2);

(10));

add(box0);

setBounds(10,30,500,400);

setBackground(new Color(80,212,248));

setVisible(true);

validate();

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

(0);

try {

();

} catch (IOException e1) {

();

}

}

});

}

public void actionPerformed(ActionEvent e) { ActionProcess actionProcess=new ActionProcess(this); try {

(e);

} catch (Exception e1) {

();

}

}

public void run()

{

String s=null;

while(true) {

try

{

s=();

("\n"+s);

}

catch(IOException e)

{

("与服务器断开连接");

try

{

();

} catch(Exception ep){}

break;

}

}

}

}

(3)

package chat;

import .*;

import .*;

import .*;

public class ChatServer

{

public static void main(String[] args)throws Exception{ ServerSocket svSocket =null;

Vector threads = new Vector();

try {

svSocket = new ServerSocket(5555);

}catch (Exception ex) {

return;

}

try{

int nid = 0;

while(true){

Socket socket = ();

ServerThread st = new ServerThread(socket,threads); (nid++);

(st);

new Thread(st).start();

for(int i=0;i < ();i++){

ServerThread temp = (ServerThread)(i);

}

}

}catch(Exception ex){

}

}

}

class ServerThread implements Runnable{

private Vector threads;

private Socket socket = null;

private DataInputStream in = null;

private DataOutputStream out = null;

private int nid;

public ServerThread(Socket socket,Vector threads){

= socket;

= threads;

try {

in = new DataInputStream());

out = new DataOutputStream());

}

catch (Exception ex) {

}

}

public void run(){

try{

while(true){

String receive = ();

if(receive == null)

return;

if("黯然下线了")){

for(int i=0;i < ();i++){

ServerThread st = (ServerThread)(i);

("***"+receive+"***");

}

}

else if("上线了")){

for(int i=0;i < ();i++){

ServerThread st = (ServerThread)(i); ("<"+getID()+">: "+receive);

}

}

else if("监听中")){

for(int i=0;i < ();i++){

ServerThread st = (ServerThread)(i);

("***"+receive+"*** ");

}

}

else if("说")){

if("大家")){

for(int i=0;i < ();i++){

ServerThread st = (ServerThread)(i); ("<"+getID()+">: "+receive);

}

}

else{

int temp=("<");

int temp1=(">");

String tempS=(temp+1,temp1);

int i=(tempS);

ServerThread st = (ServerThread)(i); ("<"+getID()+">: "+receive);

st = (ServerThread)(getID());

("<"+getID()+">: "+receive);

}

}

else{

ServerThread st = (ServerThread)(getID()); ("***"+receive+"***");

}

}

}catch(Exception ex){

(this);

();

}

try{

();

}catch(Exception ex){

();

}

}

public void write(String msg){

synchronized(out){

try{

(msg);

}catch(Exception ex){

}

}

}

public int getID(){

return ;

}

public void setID(int nid){

= nid;

}

}

(4)

package chat;

public class filesendClient {

public void filesend() throws Exception{

String sendtoIP=("请输入对方IP:");

Socket socket = new Socket(sendtoIP, 1234); BufferedReader br = new BufferedReader(

new InputStreamReader()));

PrintStream ps = new PrintStream());

File file = getFile();

());

());

String msg = ();

if("已存在".equals(msg)){

(null,"文件已存在,请不要重复上传!");

return;

}

long finishLen = (msg);

FileInputStream fis = new FileInputStream(file); OutputStream out = ();

byte[] buffer = new byte[1024];

int len;

(finishLen);

while((len = (buffer)) != -1)

(buffer, 0, len);

();

();

}

public File getFile() throws Exception{

File file=null;

boolean flag=false;

while(flag==false){

String filepath=("请输入要上传的路径:");

file = new File(filepath);

if(!()){

(null,"您输入的路径不存在,请重新输入!");

flag=false;

}

else if()){

(null,"占不支持文件夹上传!请输入一个文件路径!"); flag=false;

}

else flag=true;

}

return file;

}

}

(5)

package chat;

public class filesendServer{

public void filereceive() throws Exception{ ServerSocket serverSocket = new ServerSocket(1234); (null,"服务已启动,绑定1234端口!");

while(true){

Socket socket = ();

new fileServerThread(socket).start();

}

}

}

class fileServerThread extends Thread{

Socket socket;

public fileServerThread(Socket socket) {

= socket;

}

public void run() {

FileOutputStream fos = null;

try {

BufferedReader br = new BufferedReader(new InputStreamReader())); PrintStream ps = new PrintStream());

String fileName = ();

long fileLen = ());

File dir = new File("upload");

();

File file = new File(dir,fileName);

if() && () == fileLen){

("已存在");

return;

}

else{

());

}

String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); long start = ();

InputStream in = ();

fos = new FileOutputStream(file, true);

byte[] buffer = new byte[1024];

int len;

while((len = (buffer)) != -1){

(buffer, 0, len);

if() == fileLen)

break;

}

();

long end = ();

time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

("上传成功");

();

} catch (IOException e) {

if(fos != null)

try {

();

} catch (IOException e1) {

();

}

}

}

}

运行结果:

将5个Java源文件:、、、、。分别编译这5个Java源文件,或运行“javac *.java”

命令,编译全部的源文件,然后运行连接服务器的主类,

即。

服务器启动成功

结果分析:在进入聊天室之前必须先启动服务器,实现服务器端的连接。

然后运行

结果分析:进行服务器监听,再运行。

私聊

结果分析:进入聊天室,在输入框中输入聊天内容,点击私聊

群聊

结果分析:多个用户进入聊天室之后,在输入框中输入聊天内容,点击群聊

运行、文件。

结果分析:进行文件传送

八、设计体会

这次设计经过几天的不懈努力,程序基本满足聊天的需要。完成后的程序实现了用户登陆聊天室、用户在线聊天、用户退出等功能。

在这次程序设计中,我主要负责需求分析,功能需求描述,系统模块图等的撰写,程序设计期间,通过询问老师,同学和网上搜索相关解答等多种方式学习到很多课堂上没有的知识,还积累了一定的实践经验,增强了动手能力和解决实际问题的能力。在此之前,对于Java编程技术或网络socket编程知识都只是略知皮毛,缺乏深入的认识,对其工作方式和原理缺乏透彻的认识。在这段时间里,我认真学习了Java语言开发,Applet小程序实现,对编程思想有了进一步的体会,养成了一些良好的编程习惯。程序虽然完成,但是距离优秀仍存在一定差距,用JAVA开发大型项目还有很多我需要去努力学习的知识。希望自己能不断学习和实践,争取以后做得更好。

限于我的知识水平和经验有限,此程序还有许多有待完善和改正的地方,恳请老师批评指正。

九、参考文献

[1] 侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001.

[2] 朱福喜,傅建明,唐晓军.Java项目设计与开发范例[M].北京:电子工业出版社,2005.

[3] 朱福喜,唐晓军.Java程序设计技巧与开发实例[M].北京:人民邮电出版

社,2004.

[4] 洪维恩,何嘉.Java面向对象程序设计[M].北京:中国铁道出版社,2005.

[5] 刘慧宁.Java程序设计[M].北京:机械工业出版社,2005.

[6] 殷兆麟.Java网络编程基础[M].北京:清华大学出版社,2004.

[7] 黄强.WINDOWS网络编程[M].北京:人民邮电出版社,2003.

[8] Stevens. TCP/IP详解[M] .范建华,译.北京:机械工业出版社,2000.

[9] Andrew ,Vrije Universiteit,Amsterdam,The Netherla.计算机网络[M].4版.潘爱民,译.北京:清华大学出版社,2004.

[10] 林晓.基于TCP/IP的局域网聊天工具设计[J].福州:福建电脑,2007,(10):

123-124. [11] 林锐.软件工程思想[M].西安:西安电子科技大学出版社,2001.

[12] 耿祥义,张跃平.Java2 实用教程[M].2版.北京:清华大学出版社,2006.

[13] 赵海亮.局域网聊天程序的分析与实现[J].北京:中国科技信

息.2004,(22):17-18.

[14] 马勇.基于UDP多播文件传输方法的研究[J].福州:福建电脑.2009,(2):69-70.

[15] 黄海芳,宋筱媛.基于UDP组播的局域网聊天设计[J].福州:福建电脑.2008,(2):121-122.

JAVA代码编写一简单网络聊天程序

要求:聊天室服务器、聊天室客户端;客户端之间可以聊天。 因为我是初级选手,想借此程序分析学习java,所以代码最好多一点注释... 分数有限,望大家不吝赐教!!问题补充: 需要图形用户界面哦,最好用swing组件 服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示; 客户端:可以设定昵称,性别,客户间可以私聊 服务器端: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import https://www.doczj.com/doc/d418474190.html,.*; public class Server extends JFrame implements ActionListener{ JPanel contentPane; JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField("4700"); JButton jButton1 = new JButton(); JLabel jLabel3 = new JLabel(); JTextField jTextField3 = new JTextField(); JButton jButton2 = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); ServerSocket server = null; Socket socket = null;BufferedReader instr =null;PrintWriter os=null ; //Construct the frame public Server() { jbInit(); } class MyThread extends Thread{//该线程负责接受数据 public void run(){ try{ while(true){ this.sleep(100); instr= new BufferedReader(new InputStreamReader(socket.getInputStream())); if(instr.ready()){ //检查是否有数据 jTextArea1.append("客户端: "+instr.readLine()+"\n"); } } }catch(Exception ex){} }

java简单聊天小程序

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的ip地址即可正常用当然目前只停留在命令行界面 还没有写成可视化窗口界面 运行时请带上参数 如java TransServer 张三 Java TransClient 李四 ( 和刘正南在局域网试验的截图成功 这是修改后的 加上了姓名! ) (修改前的截图)

代码: 客户端: package com.baidu.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.doczj.com/doc/d418474190.html,.Socket; import https://www.doczj.com/doc/d418474190.html,.UnknownHostException; // 简单聊天小程序客户端 public class TransClient { public static void main(String[] args)

{ if(args[0]==null) args[0] = "他"; startClient(args[0]); } private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null; try { sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务 bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘 PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新 BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 4 获取输入流 // 5 发送获取 String text_send = ""; String text_get = ""; String ServerName = ""; System.out.print("聊天已开启..."+"\r\n"+"我说:");

java编写的简单局域网聊天室(适合初学者).

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.Panel; import java.awt.Point; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; import https://www.doczj.com/doc/d418474190.html,.DatagramPacket; import https://www.doczj.com/doc/d418474190.html,.DatagramSocket; import https://www.doczj.com/doc/d418474190.html,.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class GUI_Chat extends Frame { private static final long serialVersionUID = 1L; private TextArea viewTextArea = new TextArea(20, 1; private TextArea sendTextArea = new TextArea(; private TextField ipTextField = new TextField(20; private Button sendButton = new Button(" 发送" ; private Button clearButton = new Button(" 清屏" ; private Button logButton = new Button(" 记录" ; private Button shakeButton = new Button(" 震动" ; private Panel panel = new Panel(; private DatagramSocket socket ;

java课程设计聊天小程序

java课程设计聊天小程序

课程设计指导书 姓名学 号 班 级 一 班 课程名称Java课程设计课程性质 设计时间2010年11月4日——2010年12月31日设计名称聊天小程序 设计目的本次课程设计是对前面学过的面向对象的编程思想以及编程方法的一个总结、回顾和实践。开始设计前学生一定要先回顾以前所学的内容,明确本次设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。 设计要求1、使用图形用户界面。 2、能实现一个聊天室中多人聊天。 3、可以两人私聊。

计划与进度计划在两个月内完成任务,首先在前半个月内(11月4日--11月19日),构思通过网上(图书馆)的知识与课本上的相关内容的了解与认识,确认好选择的课题与怎样设计,基本的思路想好。十五天(11月19日--12月5日)内参考资料争取完成服务端的程序,在12月5日--12月20日完成客户端的程序设计,在12月20日—12月30日内完成实现报告的填写工作。在12月31日全面完成整个课题,并上交给老师。 任课教师意见备注

课程设计报告 课程: 学号: 姓名: 班级 教师: 时间

计算机科学与技术 设计名称:聊天小程序日期:2010 年 11月 4 日 设计内容:设计一个在图形界面下,实现一个聊天室中多人聊天,也可以私聊的聊天小程序 设计目的与要求:目的是为了更好的掌握java 这门课程的内容,同时更好的理解与掌握socket 编程,对所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,掌握Java语言编程技巧。要求使用图形用户界面。能实现一个聊天室中多人聊天。可以两人私聊。(提示:使用socket通信)程序描述清晰准确,思路清晰,程序能够实现相应的功能。

JAVA课程设计--简单的网络聊天程序

本科课程设计课程设计题目:简单的网络聊天程序

课程设计报告1.设计目的:

序言 1.1 背景 在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 1.2 相关技术 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows7 运行环境:eclips

2. 程序设计与实现 2.1需求分析 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,如:指针运算、结构、typedefs、#define,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写聊天室,实现简单聊天功能。本次课程设计做的是Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了聊天室的基本功能,其中有: (1)启动服务器:实现网络的连接,为注册进入聊天室做准备。 (2)启动客户端:实现网络的链接,可以进行正式的聊天 (3)发送信息:为用户发送信息提供平台。 (4)离开界面:使用户退出聊天室。 (5)关闭服务器:断开与网络的连接,彻底退出聊天室。

利用JAVA实现简单聊天室

利用JAVA实现简单聊天室 1.设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。而且,Java 很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写聊天室,实现简单聊天功能。程序实现了聊天室的基本功能,其中有: (1)启动服务器:实现网络的连接,为注册进入聊天室做准备。 (2)注册登陆界面:填写基本信息如姓名等,可以供多人进入实现多人聊天功能。 (3)发送信息:为用户发送信息提供平台。 (4)离开界面:使用户退出聊天室。 (5)关闭服务器:断开与网络的连接,彻底退出聊天室。 2.设计方法 在设计简单聊天室时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。 3 程序功能图及程序相关说明 (1)主功能框图

(2) 聊天室基本功能表 4.程序代码是说明 程序中引入的包: package Chat; import https://www.doczj.com/doc/d418474190.html,.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*;

import java.io.*; (1)服务器端代码中用户自定义类: 类名:Server 作用:服务器启动 继承的接口名:ActionListener public class Server implements ActionListener{ 定义的对象: count //记录点机关闭按钮次数2次关闭 soconly //只有SOCKET,用于群发 sockets//所有客户的SOCKET socket_thread //Socket所在的线乘,用于退出;frame // 定义主窗体 panel //定义面板 start,stop //启动和停止按钮 主要成员方法: public void center //定义小程序查看器的位置 public void actionPerformed //定义处理异常机制 定义子类:serverRun,Details 继承的父类名:Thread class serverRun extends Thread //启线乘用于接收连入的Socket class Details extends Thread //具体处理消息的线乘,只管发送消息创建一个ServerSocket 对象,用于接受指定端口客户端的信息 ServerSocket server = new ServerSocket("1234"); 接受请求时候,通过accept()方法,得到一个socket对象。 Socket socket = server.accept(); 通过socket创建流(输入,输出)。 BufferedReaderbr=newBufferedReader(newInputStreamReader (socket.getInputStream())) DataInputStream dis = new DataInputStream(socket.getInputStream());

若干个经典的Java小程序源代码

一个Java小程序源代码(反转字符串)//BorderLayoutTest.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class test1 { public static void main(String[] args) { cloneFrame frame = new cloneFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class cloneFrame extends JFrame { public cloneFrame() {

setTitle("机试程序"); setSize(600, 400); JPanel buttonPanel = new JPanel(); buttonPanel.setBackground(new Color(56,43,85)); Button1 = new JButton("点击复制反转字符串"); Button1.addActionListener(new turnListener()); buttonPanel.add(Button1); JPanel textPanel = new JPanel(); textPanel.setBackground(new Color(100,100,100)); field1 = new JTextField("姓名:老孙;学号:2004132028", 20); field2 = new JTextField("反转", 20); field2.setEditable(false); textPanel.add(field1); textPanel.add(field2); JPanel tuPanel = new JPanel();

Java swing实现简单的聊天室可发信息传文件

大家好,今天给大家演示一下如何用Java swing实现一个简单的聊天室系统,源码已经写好了,这里演示一下怎么导入运行,该系统基于cs架构,即客户端和服务端,采用socket通信方式,该项目可运行在任何Java环境下,jdk版本不限,一般来说网络编程都是大家的弱项,所以此项目可以用来好好学习一下Java关于网络方面的编程知识点。下面我们来看看导入运行步骤。 1.将源码导入到eclipse中(源码有客户端和服务端,必须先启动服务端客户端才可以使用)。 2.服务端导入进来了,现在我们先开启服务端。 3.服务端已开启,接下来导入客户端。 4.发现客户端导入后有个错误,一般是jre和jar包的问题,我们来配置一下,配置了jre后发现错误没有了,接下来我们来运行客户端。客户端运行结果如下: 由于第一次运行,没有账号,所以我们先注册一个账号,点击注册按

钮,注册界面如下图所示: 注册成功后我们用刚注册好的账号登录进去,如下所示: 登录上线后有声音提示,由于要聊天,所以我们还得再注册一个账号,

实现两个人之间的聊天。 再次运行login类,再启动一个程序。此时可以发现,在右侧的在线列表里面多了一个人,选择相应的人就可以聊天了。 我们来试试,下面是一些操作截图(双击右侧的在线好有就可以发文件):

上面是发信息的一些操作,下面我们来看看发文件的操作:

点击是后,文件就开始传送了,如下:

文件传完了,我们打开看看可以不可以,文件传输正常,视频可以播放。好了今天的演示就到这里吧,对这个源码感兴趣的可以加我V:qixinfang002获取源码,备注项目名称哦,适当收取一点搬运费哦!介意的勿扰!此外本人在工作学习过程中还收集整理了大量的经典项目,有需要的可以看看我的博客, 博客地址: Java项目地址:

java简单聊天程序实验报告及代码

一、实验内容 实验题目: 1、使用URL访问用户指定网站,获取该网页的HTML代码显示给用户,并能保存至指定文件中。 2、使用ServerSockt,Socket对象实现两个用户之间的端到端聊天。 要求:采用UI界面设计,界面友好。 二、实验过程 (这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据什么知识点以及使用方法进行实验以及实验步骤。不要简单照抄实习指导,更不可写一大堆源代码) 题目1、 1、分析题目,了解URL类及其方法。 2、设计一个模拟浏览器界面,有一个文本框,文本区域,一个搜索按钮,一个保存按钮。 3、在搜索事件里面写获取HTML的代码,在保存你面写将内容保存至文件中。 题目2、 1、分析题目,了解import https://www.doczj.com/doc/d418474190.html,.*,包下用到的一些类,比如URL, Socket和ServerSocket,以及这些类的方法,根据要实现的功能,进行调用。了解端到端的通讯,以及怎样建立连接。 2、设计界面:服务器界面,客户端界面。 3、写出对内容的读写代码,注意哪部分功能,在什么时候实现,应该写在哪部分。以及怎样通信:如图 三、实验结果 (应先列出测试数据,要写明实验的现象,实验数据的处理等。对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标

一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。) 题目一、 界面与结果截图: 题目2、 服务器端截屏: 客户端截屏:

java经典小程序,java入门100例!

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上 A级 80~89 B级 70~79 C级 60~69 D级 60分以下 E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){

java聊天小程序课程设计

(完整word版)java聊天小程序课程设计 亲爱的读者: 本文内容由我和我的同事精心收集整理后编辑发布到文库,发布之前我们对文中内容进行详细的校对,但难免会有错误的地方,如果有错误的地方请您评论区留言,我们予以纠正,如果本文档对您有帮助,请您下载收藏以便随时调用。下面是本文详细内容。 最后最您生活愉快 ~O(∩_∩)O ~

Java语言程序设计 课程设计 题目聊天小程序(socket编程+多线程)学院商学院 专业信息管理与信息系统 班级信息111 学号201152275118 学生姓名张语轩 指导教师余法红 编写日期2013.12.25

目录 一、需求分析 (4) 二、系统概述 (4) 三、系统运行环境 (5) 四、功能需求描述 (6) 五、总体设计 (7) 六、系统模块结构图 (9) 七、程序模块设计(程序代码设计与分析、运行结果) (10) 八、设计体会 (37) 九、参考文献 (38)

一、需求分析 当今主流的聊天工具有QQ,UC,MSN Messenger等,国内最热门的当属QQ,腾讯QQ(OICQ)是由深圳市腾讯计算机系统公司开发的,基于Internet的即时聊天工具。您可以使用QQ和好友用户进行交流,信息即时发送,即时回复,收发及时、功能全面。此外QQ还具有BP机网上寻呼、聊天室、传输文件、语音邮件、手机短讯服务等功能,QQ不仅仅是虚拟的网络寻呼机,更可与传统的无线寻呼网、GSM移动电话的短消息系统互联,目前QQ和全国多家寻呼台、移动通信公司有业务合作。是国内不可多得的中文网络寻呼机。QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000操作系统下运行,是十分灵活的网络寻呼工具。它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。当您的通讯录中的网友在线时,QQ中朋友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。 虽然以上这些软件是免费的,并且功能越来越强大。但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。 本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。 二、系统概述

简单小程序明白JAVA的进制转换

简单小程序明白Java 的进制转换 菜鸟一枚,将自己了解的Java 进制及数据类型进行说明如下1.Java 的基本数据类型: 数字类型byte 1字节int (表示整数) 4字节long (表示整数) 8字节float (表示小数) 4字节double (表示小数) 8字节字符类型 char 1字节布尔类型bollean 1字节 2.Java 中的不同进制数据输入方式: (举例)二进制:00001011B (Java 中不能直接这样输入)对应十进制:11(可以直接输入) 八进制:013(可以直接输入) 十六进制:0x0b (可以直接输入) 3.Java 不同进制转换方法: 在https://www.doczj.com/doc/d418474190.html,ng 包中的Integer 类有相应的转换方法,具体如下:(1)toBinaryString(int i):转换为二进制,简单例子如下public class Hex {public static void main(String[]args){int a =0x0b;//创建个变量a ,十六进制表示Integer s=null ;//创建个s 对象,注意区分int 与Integer System.out .println("0000"+s.toBinaryString (a)+"B");//八位二进制 显示 }}输出结果00001011B (2)toHexString(int i):转换为十六进制,简单例子如下public class Hex {public static void main(String[]args){int a =11;//创建个变量a ,十进制表示Integer s=null ; System.out .println("0x0"}}输出结果0x0b

java聊天小程序

import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.doczj.com/doc/d418474190.html,.Inet4Address; import https://www.doczj.com/doc/d418474190.html,.InetSocketAddress; import https://www.doczj.com/doc/d418474190.html,.ServerSocket; import https://www.doczj.com/doc/d418474190.html,.Socket; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; public class Liaot extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; //按钮界面上的按钮 private JButton connect,send,disconnect,save,exit; JRadioButton rb[]=new JRadioButton[2]; //聊天区域 private JTextArea ta1; private JTextField tf1,tf2,tf3; private Socket insocket1,socket2; private ServerSocket socket1; private String inbuf; private BufferedReader in1; private PrintWriter out1; //服务器对象 private Server server; //客户机对象 private Client client; public Liaot(){ this.setTitle("聊天"); Container c=getContentPane();

用java语言编一个聊天小程序

用java语言编一个聊天小程序 要求: 使用图形用户界面。 能实现一个聊天室中多人聊天。 可以两人私聊。 提示:使用socket通信 import java.awt.*; import java.awt.event.*; import javax.swing.*; import https://www.doczj.com/doc/d418474190.html,.*; import java.io.*; public class test { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { DrawFrame frame = new DrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class DrawFrame extends JFrame { public DrawFrame() { setLocation(100,100); setTitle("我的QQ"); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); //添加菜单项…… JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu edit = new JMenu("菜单"); menuBar.add(edit); JMenuItem sset = new JMenuItem("设置");

java聊天小程序课程设计

Java语言程序设计 课程设计 题目聊天小程序(socket编程+多线程) 学院商学院 专业信息管理与信息系统 班级信息111 学号 8 学生姓名张语轩 指导教师余法红 编写日期 目录 一、需求分析 (1) 二、系统概述 (2) 三、系统运行环境 (3) 四、功能需求描述 (3) 五、总体设计 (4) 六、系统模块结构图 (4) 七、程序模块设计(程序代码设计与分析、运行结果) (4) 八、设计体会 (15) 九、参考文献 (15) 一、需求分析 当今主流的聊天工具有QQ,UC,MSN Messenger等,国内最热门的当属QQ,腾讯QQ (OICQ)是由深圳市腾讯计算机系统公司开发的,基于Internet的即时聊天工具。您可

以使用QQ和好友用户进行交流,信息即时发送,即时回复,收发及时、功能全面。此外QQ还具有BP机网上寻呼、聊天室、传输文件、语音邮件、手机短讯服务等功能,QQ不仅仅是虚拟的网络寻呼机,更可与传统的无线寻呼网、GSM移动电话的短消息系统互联,目前QQ和全国多家寻呼台、移动通信公司有业务合作。是国内不可多得的中文网络寻呼机。QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000操作系统下运行,是十分灵活的网络寻呼工具。它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。当您的通讯录中的网友在线时,QQ中朋友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。 虽然以上这些软件是免费的,并且功能越来越强大。但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。 本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。 二、系统概述 我们实现的是局域网中的聊天功能,运行服务程序后,服务器创建成功,然后使服务器对某一个设定的端口处于监听状态,当有客户端请求建立连接时,服务器就可接受请求,建立连接!这样服务器和客户端就可相互发送消息,实现聊天功能! 系统的功能要求: A.服务器端主要功能如下: 1.在特定端口上进行侦听,等待客户端连接。 2.用户可以配置服务器端的侦听端口,默认端口为8888。 3.向已经连接到服务器端的用户发送系统消息。 4.统计在线人数。 5.当停止服务时,断开所有的用户连接。 B.客户端的主要功能如下: 1.连接到已经开启聊天服务的服务器端。 2.用户可以配置要连接的服务器端的IP地址和端口号。

JAVA聊天室课程设计报告含源代码压缩文件

南京晓庄学院 《JAVA程序设计》 课程设计报告 题目: Java聊天室的设计与实现 姓名: 戴佳伟 学号: 班级: 14软件工程3班 指导教师: 王峥 完成时间 成绩: 信息工程学院 2016年6月

目录 Java聊天室的设计与实现 引言 Java聊天室开发背景 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。 本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。 1.1Java聊天室开发的目的和意义 目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。 (2)理解进程共享变量的进程通信。 (3)熟悉并掌握java语言的代码编写 (4)熟练使用开发工具Eclipse (5)实现聊天室的一些基本功能 意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受

(2)用户及时获取自己想要的信息、促进交谈 (3)异常处理,对于用户错误的操作使用程序会有提示消息 (4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc. (5)后期可便于网站自身的广告宣传与商品推广 因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。 1.2完成的主要工作 (1)需求分析与总体设计、详细设计、代码分析 (2)实现程序所能运行的功能 (3)选择Window系统,并选择该操作系统中一种进程通信的方式。 (4)运用Eclipse开发工具和java语言实现该应用程序。

Java源代码----简易聊天室详细步骤介绍,新手必备

目录 1本文简介 (2) 2聊天室截图与说明 (2) 2.1用Java编译: (2) 2.2服务器登录界面 (2) 2.3服务器窗口 (2) 2.4客服端登录界面 (3) 2.5客服端窗口 (3) 3服务器端 (6) 3.1MyServer()方法 (6) 3.2Login()方法 (10) 3.3Time()方法 (13) 4客户端 (14) 4.1MyClient()方法 (14) 4.2Login()方法 (18) 4.3Time()方法 (20)

1 本文简介 这是一个简单的Java聊天室,仅提供给一些刚学Java的学生做实验,本文也是仅供参考. 本文代码都有注释,希望读者能读懂代码,本实验内部还有一些错误,比如只能一条一条的发信息,不能连发, 2 聊天室截图与说明 2.1 用Java编译: 本代码有七个类,放在六个java文件中,类名在下方希望读者自己观看, 2.2 服务器登录界面 要先运行服务器端的程序 用户名:y 密码:1 用户名密码可以自己设定点击确定可以登录,2秒后到服务端界面 2.3 服务器窗口

聊天室的IP为本机的网络虚拟IP,在任何电脑上都能用,端口应设置在1024以后, 2.4 客服端登录界面 和服务器端的登录一样 2.5 客服端窗口

当登录上后客服端就显示已经连接了,此时服务器端的窗口如下

由于本程序设计的不是很完整,具体的聊天要先从客服端开始: 在客服端输入一条聊天内容后按确定,在服务器端就可以收到信息,之后客户端不能输入了,要等待服务器端来信息后才能继续输入信息. 想要结束聊天,直接可以关闭窗口,也可以输入’bye’后断开聊天

简易聊天室JAVA代码

import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import https://www.doczj.com/doc/d418474190.html,.*; public class ChatClient extends Frame { private boolean connected = false; private DataOutputStream dos = null; private DataInputStream dis = null; private static final long serialVersionUID = 1L; private Socket s = null; private TextField tfWords = null; private TextArea taShow = null; public static void main(String args[]) { ChatClient cc = new ChatClient(); https://www.doczj.com/doc/d418474190.html,unchFrame(); cc.Listen(); } public void launchFrame() { try { s = new Socket(InetAddress.getByName("localhost"), 8888); connected = true; dos = new DataOutputStream(s.getOutputStream()); dis = new DataInputStream(s.getInputStream()); } catch (IOException ioe) { System.out.println("服务器连接失败!"); ioe.printStackTrace(); } this.tfWords = new TextField(); this.taShow = new TextArea(); this.setTitle("Chatroom Client"); this.setLocation(700, 50); this.add(tfWords, BorderLayout.SOUTH); this.add(taShow, BorderLayout.NORTH); this.setSize(200, 250); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {

Java中基于TCPsocket的一对一简单聊天室

江苏经贸职业技术学院 信息技术学院 2015-2016-2学年 《网络编程技术(java)》课程期末大作业 2016年4月

一、程序功能简介 本程序拥有图形界面和一对一聊天程序,实现监听连接、发送、退出功能。先启动Server服务器端程序进行端口监听,然后启动Client客户端连接Server端IP地址和端口号,Server端监听到后显示连接成功,可以进行通信。 二、运行界面截图 (一)界面主程序 (二)客户端程序

三、核心代码说明 (一)Client.java核心代码说明示例 package gwd; import java.awt.*; import java.awt.event.*; import java.io.*; import https://www.doczj.com/doc/d418474190.html,.InetAddress; import https://www.doczj.com/doc/d418474190.html,.InetSocketAddress; import https://www.doczj.com/doc/d418474190.html,.Socket; import https://www.doczj.com/doc/d418474190.html,.UnknownHostException; import javax.swing.*; import javax.swing.border.EmptyBorder; publicclass Client extends JFrame implements Runnable, ActionListener, KeyListener {

privatestaticfinallong serialVersionUID = 8518610966119429018L; private JScrollPane textPane;//滚动条 private JLabel pcLabel,portLabel;//标签 private JTextArea chatArea;//聊天内容区域 private JTextField pctextField,porttextField,sendField;//文本框 private JButton connectButton,sendButton;//按钮 private Socket socket;//客户端套接字对象 private DataInputStream in;//数据输入流对象 private DataOutputStream out;//数据输出流对象 private Thread thread;//线程 private JComboBox namecomboBox;//下拉列表框 public Client() { createUserInterface();//调用图形界面 setTitle("客户端");//设置标题 setSize(550,500);//设置宽度和高度 setResizable( false );//禁用界面最大化 setLocationRelativeTo(null);//自动释放大小 setVisible(true);//窗口显示出来 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭默认关闭窗口 } publicvoid createUserInterface() { setLayout(null);//设置布局 JPanel contentPane=new JPanel();//创建顶部 panel contentPane.setBounds(5, 5, 525 , 50);//设置panel坐标 add(contentPane);//添加控件到窗口屏幕中 pcLabel = new JLabel("主机:");//创建主机标签 contentPane.add(pcLabel); pctextField = new JTextField();//创建主机文本框 contentPane.add(pctextField); pctextField.setColumns(10); portLabel = new JLabel("端口");//创建端口标签 contentPane.add(portLabel); porttextField = new JTextField();//创建端口文本框 porttextField.setColumns(10); contentPane.add(porttextField);

相关主题
文本预览
相关文档 最新文档