【文件属性】:
文件名称:可群发,冒号加客户号可指定用户发送的java聊天程序
文件大小:11KB
文件格式:RAR
更新时间:2012-07-03 12:34:43
java 聊天
自己写的个java聊天
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.List;
public class ChatServer {
public static int id;
private ServerSocket server;
private List connections;
InetAddress localAddress;
public static void main(String[] args){
new ChatServer().startServer();
}
private void startServer(){
boolean started = false;
try {
connections = new ArrayList();
server = new ServerSocket(8888);
localAddress = InetAddress.getLocalHost();
started = true;
System.out.println("服务器已启动..正在监听.../服务器ip: " + localAddress);
} catch (IOException e) {
System.out.println("服务器启动失败!请关闭服务器,重新启动");
System.exit(0);
}
while(started){
try {
Socket connection = server.accept();
System.out.println("来自" + connection.getInetAddress() + "已建立:" );
Connection c = new Connection(connection);
connections.add(c);
new Thread(c).start();
} catch (IOException e) {
System.out.println("客户端连接出错");
}
}
}
class Connection implements Runnable{
private Socket connection;
private ObjectInputStream inputS;
private ObjectOutputStream outputS;
private boolean beConnected = false;
private int id;
public Connection(Socket connection){
this.connection = connection;
this.id = ChatServer.id++;
try {
inputS = new ObjectInputStream(connection.getInputStream());
outputS = new ObjectOutputStream(connection.getOutputStream());
beConnected = true;
} catch (IOException e) {
System.out.println("无法获取连接的输入输出流");
}
}
public void run(){
try {
outputS.writeObject("已连接到服务器:"+connection.getInetAddress());
outputS.writeObject("服务器:您的客户id为 :" + id + "\t" + " 输入BYE退出聊天");
while(true){
String inLine = (String) inputS.readObject();
//System.out.println(inLine);
ObjectOutputStream output;
if(inLine.charAt(0)==':'&&inLine.length()>0){
int i =0;
int index = Integer.parseInt(inLine.substring(1,2));
for(i = 0;i
【文件预览】:
ChatT
----.project(381B)
----bin()
--------ChatServer.class(2KB)
--------ChatClient.class(4KB)
--------ChatClient$ThreadRecv.class(2KB)
--------ChatClient$1.class(699B)
--------ChatClient$TfListener.class(1KB)
--------ChatServer$Connection.class(4KB)
----src()
--------ChatServer.java(3KB)
--------ChatClient.java(3KB)
----.classpath(232B)