package org.tiantian.message.server;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private int port;
public Server(int listenPort) {
this.port = listenPort;
}
public void handleConnection(Socket connectionToHandle) {
new Thread(new ConnectionHandler(connectionToHandle)).start();
}
public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(port, 100);
Socket incomingConnection = null;
while (true) {
incomingConnection = server.accept();
handleConnection(incomingConnection);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("Server start.");
Server s= new Server(25000);
s.acceptConnections();
}
}
package org.tiantian.message.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ConnectionHandler implements Runnable {
protected Socket toHandle;
public ConnectionHandler(Socket s) {
this.toHandle = s;
try {
PrintWriter streamWriter = new PrintWriter(toHandle
.getOutputStream());
BufferedReader streamReader = new BufferedReader(
new InputStreamReader(toHandle.getInputStream()));
streamWriter.println("OK from server.");
System.out.println(streamReader.readLine());
streamWriter.close();
streamReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
}
}
package org.tiantian.message.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
protected BufferedReader socketReader;
protected PrintWriter socketWriter;
protected String hostIp;
protected int hostPort;
public Client(String hostIp, int hostPort) {
super();
this.hostIp = hostIp;
this.hostPort = hostPort;
}
public void setUpConnection() {
try {
Socket client = new Socket(hostIp, hostPort);
socketReader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream());
} catch (UnknownHostException e) {
System.out
.println("Error1 setting up socket connection: unknown host at "
+ hostIp + ":" + hostPort);
} catch (IOException e) {
System.out.println("Error2 setting up socket connection: " + e);
}
}
public void tearDownConnection() {
try {
socketWriter.close();
socketReader.close();
} catch (IOException e) {
System.out.println("Error tearing down socket connection: " + e);
}
}
public void talk() {
StringBuffer sb = new StringBuffer();
try {
socketWriter.println("Hi,I'm client.");
socketWriter.flush();
String line = null;
while ((line = socketReader.readLine()) != null)
sb.append(line + "\n");
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client c = new Client("127.0.0.1", 25000);
c.setUpConnection();
c.talk();
c.tearDownConnection();
}
}
作業慢慢寫~今天就到這~