简述:
建立简单的server与client,在利用socket上通信
知识点:
1. java socket 通信
2. java GUI的几个控件
3.
代码:
SimpleChatServer.java
package test.chatclient;
import java.io.*;
import java.net.*;
import java.util.*;
public class SimpleChatServer {
ArrayList<PrintWriter> clientOutputStreams;
public static void main(String[] args){
new SimpleChatServer().go();
}
public class ClientHandler implements Runnable{
BufferedReader reader;
Socket sock;
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(isReader);
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void run() {
String message;
try{
while((message = reader.readLine()) != null){
System.out.println("read " + message);
tellEveryone(message);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void tellEveryone(String message){
Iterator<PrintWriter> it = clientOutputStreams.iterator();
while(it.hasNext()){
try{
PrintWriter writer = (PrintWriter)it.next();
writer.println(message);
writer.flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void go(){
clientOutputStreams = new ArrayList<PrintWriter>();
try{
ServerSocket serverSock = new ServerSocket(5000);
while(true){
Socket clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
SimpleChatClient.java
输出:
转自:http://blog.csdn.net/anialy/article/details/7908077