服务端代码:
客户端代码:
import
java.io.
*
;
import java.net.ServerSocket;
import java.net.Socket;
class ServeOneClient extends Thread ... {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ServeOneClient(Socket s) throws IOException...{
socket=s;
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
start();
}
public void run()...{
try...{
while(true)...{
String str=in.readLine();
if(str.equals("END")) break;
System.out.println("Echoing:"+str);
out.println(str);
yield();
}
System.out.println("closing......");
}catch(IOException e)...{}
finally...{
try...{
socket.close();
}catch(IOException e)...{}
}
}
}
public class ThreadServerTest ... {
static final int PORT=8888;
public static void main(String[] args) throws IOException...{
ServerSocket s=new ServerSocket(PORT);
System.out.println("Server Started");
try...{
while(true)...{
Socket socket=s.accept();
try...{
new ServeOneClient(socket);
}catch(IOException e)...{
socket.close();
}
}
}finally...{
s.close();
}
}
}
import java.net.ServerSocket;
import java.net.Socket;
class ServeOneClient extends Thread ... {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ServeOneClient(Socket s) throws IOException...{
socket=s;
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
start();
}
public void run()...{
try...{
while(true)...{
String str=in.readLine();
if(str.equals("END")) break;
System.out.println("Echoing:"+str);
out.println(str);
yield();
}
System.out.println("closing......");
}catch(IOException e)...{}
finally...{
try...{
socket.close();
}catch(IOException e)...{}
}
}
}
public class ThreadServerTest ... {
static final int PORT=8888;
public static void main(String[] args) throws IOException...{
ServerSocket s=new ServerSocket(PORT);
System.out.println("Server Started");
try...{
while(true)...{
Socket socket=s.accept();
try...{
new ServeOneClient(socket);
}catch(IOException e)...{
socket.close();
}
}
}finally...{
s.close();
}
}
}
客户端代码:
import java.io.
*
;
import java.net.InetAddress;
import java.net.Socket;
class ClientThread ... {
private Socket socket;
// private BufferedReader in;
private PrintWriter out;
int i=0;
public ClientThread(InetAddress addr)...{
try...{
socket=new Socket(addr,ThreadServerTest.PORT);
}catch(IOException e)...{}
try...{
// in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
while(true)...{
out.println("Client"+": AAA"+(i++));//把AAA改动一下,以便看出不同客户端的访问
}
}catch(IOException e)...{
try...{
socket.close();
}catch(IOException e2)...{}
}
}
}
public class Num1 ... {
public static void main(String[] args) throws IOException,InterruptedException...{
InetAddress addr=InetAddress.getByName(null);
new ClientThread(addr);
}
}
import java.net.InetAddress;
import java.net.Socket;
class ClientThread ... {
private Socket socket;
// private BufferedReader in;
private PrintWriter out;
int i=0;
public ClientThread(InetAddress addr)...{
try...{
socket=new Socket(addr,ThreadServerTest.PORT);
}catch(IOException e)...{}
try...{
// in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
while(true)...{
out.println("Client"+": AAA"+(i++));//把AAA改动一下,以便看出不同客户端的访问
}
}catch(IOException e)...{
try...{
socket.close();
}catch(IOException e2)...{}
}
}
}
public class Num1 ... {
public static void main(String[] args) throws IOException,InterruptedException...{
InetAddress addr=InetAddress.getByName(null);
new ClientThread(addr);
}
}