62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerTest {
private ServerSocket serverSocket;
private Socket socket;
public ServerTest() {
try {
serverSocket = new ServerSocket(31313);
socket = null;
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
private void start() {
try {
System.out.println("Server start...");
while(true) {
socket = serverSocket.accept();
if (socket != null) {
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
Object obj = null;
while ((obj = ois.readObject()) != null) {
System.out.println("Context: " + obj.toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
ServerTest serverTest = new ServerTest();
serverTest.start();
}
}
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class SendThread extends Thread {
private ObjectOutputStream oos;
private Serializable message;
public SendThread(ObjectOutputStream oos) {
this.oos = oos;
}
public void setMessage(Serializable message) {
this.message = message;
}
public void run() {
while(true) {
if (this.message != null) {
synchronized(this.message) {
try {
oos.writeObject(this.message);
oos.flush();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
this.message = null;
}
}
}
}
}
}
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import client.thread.SendThread;
public class Client {
private Socket socket;
private SendThread sendThread;
private ObjectOutputStream oos;
public Client() {
try {
InetAddress inetAddress = InetAddress.getLocalHost();
socket = new Socket("127.0.0.1", 31313, inetAddress, 51515);
oos = new ObjectOutputStream(socket.getOutputStream());
sendThread = new SendThread(oos);
sendThread.start();
} catch (UnknownHostException uhe) {
uhe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public void send(Serializable message) {
System.out.println("send message...");
this.sendThread.setMessage(message);
}
}
import bean.TestBean;
import client.Client;
public class MainClient {
public static void main(String[] args) {
Client client = new Client();
for (int i = 0; i < 5; i++) {
client.send(new TestBean());
// try {
// client.send(new TestBean());
// Thread.sleep(10000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
}
}
}