服务器端:
package Server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerTest implements Runnable {
private int port;//端口号
private ServerSocket server = null;
public ServerTest(){
this(8000);
}
public ServerTest(int port){
this.port = port;
}
public void run() {
try {
server = new ServerSocket(port);
while(true){
Socket client = server.accept();
System.out.println(client);
ObjectInputStream ois = new ObjectInputStream(
client.getInputStream());
String str;
try {
str = (String)ois.readObject();
System.out.println(str);
ois.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
if(client != null) client.close();
}
}
} catch (IOException e1) {
e1.printStackTrace();
}finally{
if(server != null)
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String []args){
ServerTest s = new ServerTest();
new Thread(s).start();
}
}
客户端:
package client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientTest implements Runnable{
private String host;
private int port;
private Socket client;
ClientTest(){
this("172.17.4.20",8000);
}
ClientTest(String IP,int port){
this.host = IP;
this.port = port;
}
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
try {
client = new Socket(host,port);
String into = br.readLine();
ObjectOutputStream oos = new ObjectOutputStream(
client.getOutputStream());
oos.writeObject(into);
oos.flush();
oos.close();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(client != null) client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String []args){
ClientTest c = new ClientTest();
new Thread(c).start();
}
}
从中我犯了一个重要性错误,客户端每次和服务器交互时创建连接,不是一次连接