资源简介
项目不是很大,对于初学者比较费劲,首先用到的技术有java文件操作,字符输出输入流,多线程,TCP通信等基础知识,很好的实战小项目,里面含有大量注释帮助理解...

代码片段和文件信息
package chat;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
/**
* 聊天室的客户端
* @author samsung
*/
public class client {
/**
* java.net.Socket 套接字 Socket封装了TCP通讯协议,使用它可以基于TCP协议于远端计算机通讯
*/
private Socket socket;
/**
* 客户端的构造方法用来初始化客户端
* @throws IOException
*/
public client() throws IOException {
try {
/**
* 实例化Socket时,构造方法要求传入两个参数: String:指定服务器的Ip地址 int:指定服务器开放的端口号
*/
System.out.println(“正在连接服务端...“);
long time = System.currentTimeMillis();// 获取时间
socket = new Socket(“127.0.0.1“ 8088);
System.out.println(“连接服务端成功.“ + “耗时:“ + (System.currentTimeMillis() - time) + “ms“);
} catch (UnknownHostException e) {
// 记录日志
throw e;// 抛异常
} catch (IOException e) {
// 记录日志
throw e;
}
}
/**
* 输入昵称
* @throws IOException
* @throws UnsupportedEncodingException
*/
private void inputNickName(Scanner scanner) throws UnsupportedEncodingException IOException {
//定义昵称
String nickName=null;
//创建输出流
PrintWriter pw=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()“utf-8“)true);
//创建输入流
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()“utf-8“));
//输入用户名,并上传至服务器,等待服务器回应,若昵称可用结束循环,否则通知用户重新输入
while(true) {
System.out.println(“请输入昵称:“);
nickName=scanner.nextLine();
if(nickName.trim().equals(““)) {
System.out.println(“昵称不能为空“);
}else {
pw.println(nickName);
String pass=br.readLine();
if(pass!=null&&!pass.equals(“OK“)) {
System.out.println(“昵称已经被占用,请更换...“);
}else {
System.out.println(“恭喜你!“+nickName+“开始聊天吧!“);
break;
}
}
}
}
/**
* 启动客户端的方法
*/
public void start() {
try {
Scanner scan = new Scanner(System.in);
//首先输入昵称
inputNickName(scan);
/**
* 启动用于接收服务器端发送过来的消息线程
*/
ServerHandler handler=new ServerHandler();
Thread t=new Thread(handler);
t.start();
/**
* Socket提供了方法: OutputStream getOutputStream()
* 该方法可以获取一个输出流,通过该输出流写出的数据会发送给远端,这里的远端就是服务端
*/
OutputStream out = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(out “utf-8“);
PrintWriter pw = new PrintWriter(osw true);// 缓冲字符流,自动行刷新
String message=null;
long lastSend=System.currentTimeMillis();
while(true) {
message = scan.nextLine();
if(System.currentTimeMillis()-lastSend<1500) {
System.out.println(“说话太快了“);
}else {
pw.println(message);
lastSend=System.currentTimeMillis();
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(socket!=null)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4195 2017-08-12 20:43 java聊天室简单版\client.java
文件 6648 2017-08-12 20:43 java聊天室简单版\Server.java
目录 0 2017-08-12 20:43 java聊天室简单版
----------- --------- ---------- ----- ----
10843 3
相关资源
- JAVA开发聊天室程序
- 基于java聊天室(gui)
- java聊天室仿QQ,socket+线程实现
- java聊天室程序--基于Socket的网络编程
- 毕业设计java版聊天室
- Java聊天室程序源码(毕业设计) Bu
- java聊天室课程设计源码含设计报告
- 西安电子科技大学java聊天室大作业
- java聊天室(ssh框架)
- java聊天室软件源代码
- JAVA聊天室课程设计报告+源代码
- java写的聊天室项目
- 简单的java聊天室代码,适合初学者
- java实现基于UDP协议的简单聊天室,带
- java基于socket聊天室源代码.rar
- java聊天室程序带数据库
- Java基于UDP传输协议的简单聊天室
- java聊天室socket编程
- Java聊天室
- Java聊天室程序,socket编程
- Java聊天室(界面完整,群聊,私聊,
- C/S结构的java聊天室源代码
- 简易java聊天室ui界面
- eclipse java聊天室
- java聊天室实验报告
- java局域网聊天室课程设计源码
- 局域网聊天室课程设计java
- java聊天室程序设计报告
- java网络聊天室课程设计报告代码和文
- 一个简单java聊天室代码
评论
共有 条评论