1.如何利用Socket进行连接
TCP(协议需要深入研究    特点    三次握手    四次挥手)
基于字节型流执行操作
服务端ServerSocket
客户端Socket
2.如何利用流来进行通信
InputStream/OutputStream
InputStreamReader
BufferedReader/PrintWriter
package server;import java.io.*;import java.net.ServerSocket;import java.net.Socket;//服务器public class Server {public static void main(String[] args){try{//1.创建一个socket对象ServerSocket server=new ServerSocket(8888);//2.等待客户端过来连接Socket socket= server.accept();//同意 接收OutputStream os= socket.getOutputStream();//字节流PrintWriter writer=new PrintWriter(os);//字符流writer.println("连接上了");writer.flush();//服务端读取客户端消息InputStream is= socket.getInputStream();InputStreamReader isr=new InputStreamReader(is);BufferedReader br=new BufferedReader(isr);String value= br.readLine();System.out.println(value);}catch (Exception e){e.printStackTrace();}}}
package client;import java.io.*;import java.net.Socket;//客户端public class Client {public static void main(String[] args){try{//1.主动发起访问(服务器在哪,服务期开放端口是多少)Socket socket=new Socket("localhost",8888);//如果socket对象成功创建出来,就代表与服务器连接成功了InputStream is= socket.getInputStream();//字节流InputStreamReader isr=new InputStreamReader(is);//字符流,但不能读取一行BufferedReader br=new BufferedReader(isr);//可以读取一行的字符流String value= br.readLine();//读取服务器发给我的消息System.out.println(value);//客户端回写一个消息OutputStream os= socket.getOutputStream();PrintWriter pw=new PrintWriter(os);pw.println("我知道连接上了");pw.flush();}catch (Exception e){e.printStackTrace();}}}

