client端:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Socket socket=new Socket("10.0.11.204", 8804);
OutputStream out=socket.getOutputStream();
DataOutputStream ou=new DataOutputStream(out);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
ou.writeUTF(br.readLine());
InputStream in=socket.getInputStream();
DataInputStream di=new DataInputStream(in);
System.out.println(di.readUTF());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ServerSocket端(持续监听,输入bye取消端口监听):
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class server {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket server=new ServerSocket(8804);
String a="";
do{
Socket socket=server.accept();
DataInputStream in=new DataInputStream(socket.getInputStream());
a=in.readUTF();
System.out.println(a);
DataOutputStream out=new DataOutputStream(socket.getOutputStream());
out.writeUTF(a+":sssss");
}while(!a.equals("bye"));
}
}
***************************************************************************************************************************************************************************************
ServerSocket端(多线程持续监听):
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServletSocket extends ServerSocket{
private static int PORT=8906;
public ServletSocket() throws IOException {
super(PORT);
// TODO Auto-generated constructor stub
while(true)
{
Socket socket=accept();
new ServerThread(socket);
}
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
public class ServerThread extends Thread{
/**
* @param args
* @throws IOException
*/
private Socket client;
private DataInputStream in;
private DataOutputStream out;
public ServerThread(Socket socket) throws IOException
{
client=socket;
in=new DataInputStream(socket.getInputStream());
out=new DataOutputStream(socket.getOutputStream());
start();
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
new ServletSocket();
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
System.out.println(in.readUTF());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out.writeUTF("welcome");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
代码缺点:无法取消监听的端口。