資源簡介
java基于socket公共聊天室的實現(xiàn).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?{
//?創(chuàng)建一個Socket
private?static?Socket?client?=?null;
//?定義輸入流變量
private?static?DataInputStream?di?=?null;
//?定義輸出流變量
private?static?DataOutputStream?dos?=?null;
//?創(chuàng)建scanner對象接收數(shù)據(jù)
Scanner?sc?=?new?Scanner(System.in);
//?定義一個String變量保存用戶名
static?String?name;
//?定義一個布爾值來判斷是否循環(huán)接受用戶名
boolean?falg?=?true;
public?static?void?main(String?args[])?{
//?創(chuàng)建對象
ChatClient?cc?=?new?ChatClient();
//?創(chuàng)建客戶端的socket對象
client?=?new?Socket();
//?調(diào)用方法
cc.connect();
//?調(diào)用方法
cc.send();
}
//?連接
public?void?connect()?{
//?創(chuàng)建客戶端的socket對象
client?=?new?Socket();
//?定義一個String接收IP地址
String?IP?=?null;
//?定義一個int端口號
int?port?=?0;
System.out.println(“***!!Welcome!!***“);
try?{
System.out.println(“輸入服務(wù)器的默認(rèn)地址是0或127.0.0.1“);
//?接收一個IP保存到string對象中
IP?=?sc.nextLine();
//?匹配接收到的IP,接收到后將IP賦值為默認(rèn)
if?(IP.equalsIgnoreCase(“0“))?{
IP?=?““;
}
//?設(shè)置端口號
port?=?8000;
}?catch?(Exception?e)?{
}
try?{
//?從給定的主機名得到ip存入inetaddress對象中
InetAddress?address?=?InetAddress.getByName(IP);
//?根據(jù)得到的ip和端口號創(chuàng)建套接字地址
InetSocketAddress?socketaddress?=?new?InetSocketAddress(address
port);
//?將客戶端的套接字鏈接到服務(wù)器
try?{
//?連接服務(wù)器與客戶端
client.connect(socketaddress);
//?判斷是否有連接
if?(client.isConnected())?{
//?調(diào)用方法
runn();
}?else?{
client.connect(socketaddress);
//?調(diào)用方法
connect();
}
}?catch?(SocketException?e)?{
System.out.println(“不能連接到服務(wù)器,請重新輸入“);
//?調(diào)用connect()重新連接
connect();
}
}?catch?(Exception?e)?{
System.out.println(“不能連接到服務(wù)器,請重新輸入“);
//?調(diào)用connect()重新連接
connect();
}
}
public?void?runn()?{
try?{
//?定義read對象
ClientThread?read?=?null;
//?創(chuàng)建read對象
read?=?new?ClientThread();
//?創(chuàng)建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(“歡迎進(jìn)入聊天室,需要幫助請輸入/A“);
dos.writeUTF(name);
dos.flush();
read.setDataInputStream(di);
//?啟動線程
readData.start();
//?改變flag中斷循環(huán)
falg?=?false;
}
}?catch?(IOException?e)?{
}
}
//?寫入信息
@SuppressWarnings(“deprecation“)
public?void?send()?{
//?循環(huán)接收發(fā)送的消息
System.out.println(“請輸入內(nèi)容:“);
while?(sc.hasNext())?{
S
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????72??2016-03-15?19:57??版權(quán)說明.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??執(zhí)行文件\
?????文件??????????22??2015-05-18?12:08??執(zhí)行文件\client.bat
?????文件????????9340??2015-12-06?12:25??執(zhí)行文件\client.jar
?????文件??????????20??2015-05-18?12:08??執(zhí)行文件\server.bat
?????文件????????9340??2015-12-06?12:24??執(zhí)行文件\server.jar
評論
共有 條評論