
小蜜锋 - 云代码空间
—— 技术宅拯救世界!
import java.net.*;
import java.io.*;
public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server()
{
try
{
ss = new ServerSocket ( 10000 );
while ( true )
{
socket = ss.accept();
in = new BufferedReader ( new InputStreamReader ( socket.getInputStream() ) );
out = new PrintWriter ( socket.getOutputStream(),true );
String line = in.readLine();
out.println ( "you input is :" + line );
out.close();
in.close();
socket.close();
}
ss.close();
}
catch ( IOException e )
{}
}
public static void main ( String[] args )
{
new Server();
}
}
import java.io.*;
import java.net.*;
public class Client
{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client()
{
try
{
socket = new Socket ( "xxx.xxx.xxx.xxx", 10000 );
in = new BufferedReader ( new InputStreamReader ( socket.getInputStream() ) );
out = new PrintWriter ( socket.getOutputStream(),true );
BufferedReader line = new BufferedReader ( new InputStreamReader ( System.in ) );
out.println ( line.readLine() );
line.close();
out.close();
in.close();
socket.close();
}
catch ( IOException e )
{}
}
public static void main ( String[] args )
{
new Client();
}
}
import java.io.*;
import java.net.*;
public class Server extends ServerSocket
{
private static final int SERVER_PORT = 10000;
public Server() throws IOException
{
super ( SERVER_PORT );
try
{
while ( true )
{
Socket socket = accept();
new CreateServerThread ( socket );
}
}
catch ( IOException e )
{}
finally
{
close();
}
}
//--- CreateServerThread
class CreateServerThread extends Thread
{
private Socket client;
private BufferedReader in;
private PrintWriter out;
public CreateServerThread ( Socket s ) throws IOException
{
client = s;
in = new BufferedReader ( new InputStreamReader ( client.getInputStream(), "GB2312" ) );
out = new PrintWriter ( client.getOutputStream(), true );
out.println ( "--- Welcome ---" );
start();
}
public void run()
{
try
{
String line = in.readLine();
while ( !line.equals ( "bye" ) )
{
String msg = createMessage ( line );
out.println ( msg );
line = in.readLine();
}
out.println ( "--- See you, bye! ---" );
client.close();
}
catch ( IOException e )
{}
}
private String createMessage ( String line )
{
xxxxxxxxx;
}
}
public static void main ( String[] args ) throws IOException
{
new Server();
}
}
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
public class Server extends ServerSocket
{
private static ArrayList User_List = new ArrayList();
private static ArrayList Threader = new ArrayList();
private static LinkedList Message_Array = new LinkedList();
private static int Thread_Counter = 0;
private static boolean isClear = true;
protected static final int SERVER_PORT = 10000;
protected FileOutputStream LOG_FILE = new FileOutputStream ( "d:/connect.log", true );
public Server() throws FileNotFoundException, IOException
{
super ( SERVER_PORT );
new Broadcast();
//append connection log
Calendar now = Calendar.getInstance();
String str = "[" + now.getTime().toString() + "] Accepted a connection1512";
byte[] tmp = str.getBytes();
LOG_FILE.write ( tmp );
try
{
while ( true )
{
Socket socket = accept();
new CreateServerThread ( socket );
}
}
finally
{
close();
}
}
public static void main ( String[] args ) throws IOException
{
new Server();
}
//--- Broadcast
class Broadcast extends Thread
{
public Broadcast()
{
start();
}
public void run()
{
while ( true )
{
if ( !isClear )
{
String tmp = ( String ) Message_Array.getFirst();
for ( int i = 0; i < Threader.size(); i++ )
{
CreateServerThread client = ( CreateServerThread ) Threader.get ( i );
client.sendMessage ( tmp );
}
Message_Array.removeFirst();
isClear = Message_Array.size() > 0 ? false : true;
}
}
}
}
//--- CreateServerThread
class CreateServerThread extends Thread
{
private Socket client;
private BufferedReader in;
private PrintWriter out;
private String Username;
public CreateServerThread ( Socket s ) throws IOException
{
client = s;
in = new BufferedReader ( new InputStreamReader ( client.getInputStream() ) );
out = new PrintWriter ( client.getOutputStream(), true );
out.println ( "--- Welcome to this chatroom ---" );
out.println ( "Input your nickname:" );
start();
}
public void sendMessage ( String msg )
{
out.println ( msg );
}
public void run()
{
try
{
int flag = 0;
Thread_Counter++;
String line = in.readLine();
while ( !line.equals ( "bye" ) )
{
if ( line.equals ( "l" ) )
{
out.println ( listOnlineUsers() );
line = in.readLine();
continue;
}
if ( flag++ == 0 )
{
Username = line;
User_List.add ( Username );
out.println ( listOnlineUsers() );
Threader.add ( this );
pushMessage ( "[< " + Username + " come . in >]" );
}
else
{
pushMessage ( "<" + Username + ">" + line );
}
line = in.readLine();
}
out.println ( "--- See you, bye! ---" );
client.close();
}
catch ( IOException e )
{}
finally
{
try
{
client.close();
}
catch ( IOException e )
{}
Thread_Counter--;
Threader.remove ( this );
User_List.remove ( Username );
pushMessage ( "[< " + Username + " left>]" );
}
}
private String listOnlineUsers()
{
String s ="-+- .line list -+-1512";
for ( int i = 0; i < User_List.size(); i++ )
{
s += "[" + User_List.get ( i ) + "]1512";
}
s += "-+---------------------+-";
return s;
}
private void pushMessage ( String msg )
{
Message_Array.addLast ( msg );
isClear = false;
}
}
}
