MyServer.java
package socketDemo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
public static void main(String[] args) throws IOException {
// 1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
ServerSocket server = new ServerSocket(5678);
// 2、调用accept()方法开始监听,等待客户端的连接
Socket socket = server.accept();
// 3、获取输入流,并读取客户端信息
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader in = new BufferedReader(isr);
//4、获取输出流,响应客户端的请求
PrintWriter out = new PrintWriter(socket.getOutputStream());
while (true) {
String str = in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if (str.equals("end"))
break;
}
socket.close();
}
}
MyClient.java
package socketDemo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class MyClient {
static Socket socket;
public static void main(String[] args) throws Exception {
// 客户端
// 1、创建客户端Socket,指定服务器地址和端口,InetAddress.getLocalHost()写成"127.0.0.1"端口号也可以
socket = new Socket(InetAddress.getLocalHost(), 5678);
// 2,获取输入流,并读取服务器端的响应信息
BufferedReader in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 3、获取输出流,向服务器端发送信息
PrintWriter out = new PrintWriter(socket.getOutputStream());
//System.in 等同于 socket.getInputStream();
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
while (true) {
//读取服务端返回的信息
String str = wt.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());
}
socket.close();
}
}