资源简介
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
相关资源
- JavaSocket建立连接和发送消息.zip
- javaismy.txt
- 《Java从入门到精通》第4版光盘资源
- BAT大牛带你深度剖析Android10大开源框
- Java从入门到精通视频+Java架构师vip视
- JAVA面试实际项目经验.rar
- 2015年传智播客java第33期全套完整.tx
- 轻量级JavaEE企业级应用实战.txt
- 毕向东javaSE基础视频35天.txt
- JetbrainsCrack-2.6.10-release-enc.jar
- C开发Android应用实战_pdf_以及.zip
- jAVA从入门到精通.docx
- 百度网盘javaEE.txt
- Android安卓开发全套112GB教程很全.txt
- SMS4国密封装接口直接可用java.zip
- Android 仿QQ侧滑删除—一个满足ListVi
- 企业快信java.rar
- zw_huangyx123456-10303904-基于Java的迷宫程
- zw_page_sh_null_jar.zip
- zw_mysql-connector-java-5.1.7-bin.zip
- 轻量级javaee企业应用实战第四版.doc
- JavaEE企业级应用开发教程SpringSpringM
- 韩顺平_Java韩顺平Java全部视频教程(
- .apk
- 尚硅谷java视频教程百度云链接.txt
- 毕向东Java全套.txt
- Android—DEMO.txt
- 疯狂Java讲义第4版.txt
- 基于java银行管理系统的设计.doc
- 郭永峰2018最新Java全套教程,百度网盘
评论
共有 条评论