客户端与服务端的信息传送
题接上篇,这篇博文记录的是:在客户端写信息输送给服务端。
关键性的点:理解Socket的作用,在服务端和客户端之间的桥梁作用,在通过输入输出流的相关操作,通过Socket得到相关信息。废话不多说:贴代码:
服务端:
public class Server {
private ServerSocket server=null;
private Socket socket=null;
public Server(){
try {
System.out.println("服务器等待客户端连接......");
//创建ServerSocket,并申请计算机的8088服务端口
server = new ServerSocket(8088);
socket = server.accept();
/*
* 监听Socket的连接--来自客户端的Socket的。
* 该方法是一个阻塞方法,直到一个客户端通过Socket连接后,accept会封装一个Socket,
* 该Socket封装与表示该客户端的有关的信息。通过这个Socket与该客户端进行通信。
*/
System.out.println("服务器连接成功");
} catch (IOException e) {
e.printStackTrace();
}
}
public void start() throws IOException{
InputStream in = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(in,"UTF-8");
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();
System.out.println(str);
}
public static void main(String[] args) throws IOException {
Server server = new Server();
server.start();
}
}
客户端:
public class Client {
private Socket socket=null;
public Client() throws IOException{
socket = new Socket("localhost",8088);
/*
* 创建Socket的同时就发起连接,若连接异常会抛出异常。
* 我们通常创建Socket时会传入服务端的地址以及服务端口号。
* 1,服务器IP地址
* 2,计算机服务端口
*/
}
public void start() throws IOException{
Scanner scanner = new Scanner(System.in);
OutputStream out = socket.getOutputStream();
OutputStreamWriter osw =new OutputStreamWriter(out,"UTF-8");
PrintWriter pw = new PrintWriter(osw,true);
pw.println(scanner.nextLine());
}
public static void main(String[] args) throws IOException {
Client client = new Client();
client.start();
}
}
总结:重要的知识点:还是那一句话,理解Socket,与Socket的相关流的操作。
未完待续.....