/*
* 客服端Socket
*
* */
public class MyClient {
public static void main(String[] args) {
//创建一个Socket对象,用来跟服务器的Socket进行通信,传递数据
//指定要链接的Socket端的服务器ip地址和端口号,本机ip是127.0.0.1
//或者写本机的域名localhost
try ( //如果链接成功,返回本机的一个Socket对象
Socket s = new Socket("192.168.3.28",6000);
//打开输入流,用来接收从服务器端发过来的数据
InputStream is = s.getInputStream();
//打开输出流,用来向服务器端发送数据
OutputStream os = s.getOutputStream();
//封装输入流
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//封装输出流 字符流当中的实现类
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
PrintWriter pw = new PrintWriter(os);
) {
//获取服务器发送过来的数据
String line = br.readLine();
System.out.println("服务器:"+line);
// String line2 = br.readLine();
// System.out.println("服务器-->"+line2);
//向服务器端发送数据
// pw.println("我是客户端");
// pw.flush();
Scanner sc = new Scanner(System.in);
while(true){
//读取服务器发送过来的数据
System.out.println("服务器"+br.readLine());
// System.out.println("请从键盘输入");
//接收键盘输入的数据
String str = sc.next();
//向服务器发送输入的数据
pw.println(str);
//刷新缓冲区,把数据即使传输给对方
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建一个服务端Server
/*
* 服务端Socket
*
* */
public class MyServer {
public static void main(String[] args) {
try ( //创建服务端ServerSocket对象,接受端口接收客户端请求
ServerSocket ss = new ServerSocket(6000);
//监听客户端发送请求,该方法阻塞,如果没有客户端发来请求一直等待,
//直到有客户端发来请求返回Socket对象
Socket s = ss.accept();
//打开输入流对象,读取从客户端发送过来的数据
InputStream is = s.getInputStream();
//打开输出流对象,向客户端发送数据
OutputStream os = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
PrintWriter pw = new PrintWriter(os);) {
System.out.println("客户端连接服务器成功!");
pw.println("欢迎访问服务器");
// pw.println("sdfhaksj");
pw.flush();
System.out.println(br.readLine());
Scanner sc = new Scanner(System.in);
while (true){
// System.out.println("请从键盘输入");
//获取键盘输入的内容
String str = sc.next();
//发送输入的内容到客户端
pw.println(str);
pw.flush();
//接收客户端发送过来的数据
String line = br.readLine();
System.out.println("客户端:"+line);
}
}catch (Exception e){
e.printStackTrace();
}
}
}