创建Socket对象
Socket socket = new Socket("localhost", 9688);// 输入ioBufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
localhost 服务端地址, 9688 服务端端口号
写数据给socket对象,传递给服务端
readLine = reader.readLine();writer.println(readLine);writer.flush();
监听服务端传过来的数据
Thread thread = new Thread(new Runnable() {@Overridepublic void run() {try {System.out.println(socketReader.readLine());if (socketReader.readLine().equals("over")) {over[0] = 1;}} catch (IOException e) {e.printStackTrace();}}});thread.start();
完整的客户端代码
package io.bio;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;/*** 客户端代码** @author linguo**/public class ClientSocketDemo {public static void main(String[] args) throws IOException {try {// 创建Socket对象 localhost 服务端地址, 9688 服务端端口号Socket socket = new Socket("localhost", 9688);// 输入ioBufferedReader reader = new BufferedReader(new InputStreamReader(System.in));// 客户端写ioPrintWriter writer = new PrintWriter(socket.getOutputStream());// 客户端读ioBufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));int[] over = new int[1];// 创建线程读取服务端传来的数据Thread thread = new Thread(new Runnable() {@Overridepublic void run() {try {System.out.println(socketReader.readLine());if (socketReader.readLine().equals("over")) {over[0] = 1;}} catch (IOException e) {e.printStackTrace();}}});thread.start();// 客户端持续读取控制台并写给服务器String readLine = null;while (true) {readLine = reader.readLine();writer.println(readLine);writer.flush();// 收到服务端的over需要断开连接if (over[0] == 1) {break;}}writer.close();socketReader.close();reader.close();socket.close();} catch (IOException e) {System.out.println("can't listen to:" + e);}}}
