资源简介
java基于socket公共聊天室的实现.zip

代码片段和文件信息
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class ChatClient {
// 创建一个Socket
private static Socket client = null;
// 定义输入流变量
private static DataInputStream di = null;
// 定义输出流变量
private static DataOutputStream dos = null;
// 创建scanner对象接收数据
Scanner sc = new Scanner(System.in);
// 定义一个String变量保存用户名
static String name;
// 定义一个布尔值来判断是否循环接受用户名
boolean falg = true;
public static void main(String args[]) {
// 创建对象
ChatClient cc = new ChatClient();
// 创建客户端的socket对象
client = new Socket();
// 调用方法
cc.connect();
// 调用方法
cc.send();
}
// 连接
public void connect() {
// 创建客户端的socket对象
client = new Socket();
// 定义一个String接收IP地址
String IP = null;
// 定义一个int端口号
int port = 0;
System.out.println(“***!!Welcome!!***“);
try {
System.out.println(“输入服务器的默认地址是0或127.0.0.1“);
// 接收一个IP保存到string对象中
IP = sc.nextLine();
// 匹配接收到的IP,接收到后将IP赋值为默认
if (IP.equalsIgnoreCase(“0“)) {
IP = ““;
}
// 设置端口号
port = 8000;
} catch (Exception e) {
}
try {
// 从给定的主机名得到ip存入inetaddress对象中
InetAddress address = InetAddress.getByName(IP);
// 根据得到的ip和端口号创建套接字地址
InetSocketAddress socketaddress = new InetSocketAddress(address
port);
// 将客户端的套接字链接到服务器
try {
// 连接服务器与客户端
client.connect(socketaddress);
// 判断是否有连接
if (client.isConnected()) {
// 调用方法
runn();
} else {
client.connect(socketaddress);
// 调用方法
connect();
}
} catch (SocketException e) {
System.out.println(“不能连接到服务器,请重新输入“);
// 调用connect()重新连接
connect();
}
} catch (Exception e) {
System.out.println(“不能连接到服务器,请重新输入“);
// 调用connect()重新连接
connect();
}
}
public void runn() {
try {
// 定义read对象
ClientThread read = null;
// 创建read对象
read = new ClientThread();
// 创建readdata线程对象
Thread readData = new Thread(read);
// 封装一个DataInputStream对象得到输入流
di = new DataInputStream(client.getInputStream());
// 封装一个DataOutputStream对象得到输出流
dos = new DataOutputStream(client.getOutputStream());
// 接受用户名
while (falg) {
System.out.println(“请输入用户名:“);
name = sc.next();
System.out.println(name + “上线了“);
System.out.println(“欢迎进入聊天室,需要帮助请输入/A“);
dos.writeUTF(name);
dos.flush();
read.setDataInputStream(di);
// 启动线程
readData.start();
// 改变flag中断循环
falg = false;
}
} catch (IOException e) {
}
}
// 写入信息
@SuppressWarnings(“deprecation“)
public void send() {
// 循环接收发送的消息
System.out.println(“请输入内容:“);
while (sc.hasNext()) {
S
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 72 2016-03-15 19:57 版权说明.txt
目录 0 2015-12-06 12:27 源代码\
目录 0 2015-12-06 12:26 源代码\ChatRoomDemo\
文件 301 2015-12-06 12:05 源代码\ChatRoomDemo\.classpath
文件 388 2015-12-06 12:05 源代码\ChatRoomDemo\.project
目录 0 2015-12-06 12:26 源代码\ChatRoomDemo\.settings\
文件 598 2015-12-06 12:05 源代码\ChatRoomDemo\.settings\org.eclipse.jdt.core.prefs
目录 0 2015-12-06 12:26 源代码\ChatRoomDemo\bin\
文件 5384 2015-12-06 12:26 源代码\ChatRoomDemo\bin\ChatClient.class
文件 2462 2015-12-06 12:26 源代码\ChatRoomDemo\bin\ChatServer.class
文件 1874 2015-12-06 12:26 源代码\ChatRoomDemo\bin\ClientThread.class
文件 5883 2015-12-06 12:26 源代码\ChatRoomDemo\bin\ServerThread.class
目录 0 2015-12-06 12:26 源代码\ChatRoomDemo\src\
文件 5246 2015-12-06 12:08 源代码\ChatRoomDemo\src\ChatClient.java
文件 1905 2015-12-06 12:09 源代码\ChatRoomDemo\src\ChatServer.java
文件 1199 2015-12-06 12:07 源代码\ChatRoomDemo\src\ClientThread.java
文件 5732 2015-12-06 12:24 源代码\ChatRoomDemo\src\ServerThread.java
目录 0 2016-03-15 19:56 执行文件\
文件 22 2015-05-18 12:08 执行文件\client.bat
文件 9340 2015-12-06 12:25 执行文件\client.jar
文件 20 2015-05-18 12:08 执行文件\server.bat
文件 9340 2015-12-06 12:24 执行文件\server.jar
相关资源
- Android分区工具包
- 药品进销存管理系统(论文范文_JSP
- Java写的一个简单的字体更改程序
- 尚硅谷Java视频Java8新特性视频教程
- 关于CommVault统一数据管理方案
- 基于CenGRP3.0 烟草行业企业整合解决方
- java并发编程实战高清版pdf
- java并发编程实战pdf
- 实现jsp页面二级下拉框联动,实时读
- 北师大学珠海校区实施SunONE数字校园
- Java-核心技术-36-讲李运华完.pdf
- 小工具,解决oschina码云svn文件夹不能
- Sun公司为中国客户提供Java架构咨询与
- 美国Holy Cross 医院使用Sun 解决方案对
- 立邦漆公司向Sun架构的移植预期使总
- 通用电气公司基于Sun 平台部署其全球
- jbpm(juel-api.jar)
- jstl 和 standard jar 包
- 验证全志R18的LCD+HDMI双屏异显
- jsp网站模板
- 《21天学通SQL Server》源码
- JSP多文件上传同时上传
- J2EE服务支持平台下融通供应商服务系
- Data Structures and Algorithm Analysis in Java
- Thinking In Java第五版
- think in java中文第五版
- JAVA JDK百度网盘地址
- jdk1.9安装包
- NCC-OpenAPI文档.zip
- JAVA并发编程实战.pdf
评论
共有 条评论