1. Socket简介
socket可分类三类,其SOCK_RAW是最低层协议,
2. Socket类
2.1 socket Constructor
2.2 socket类的常用方法
3 SocketServer类
3.1 SocketServer 构造方法
3.2 SocketServer类的常用方法
4 代码实现
4.1 服务端
public class Server{
public static void main(String[] avgs){
try {
ServerSocket server = new ServerSocket(8800);
// 阻塞服务 ,检测到有一个请求,创建 Socket;
Socket socket = server.accept();
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String input = null;
while( (input= br.readLine())!=null){
System.out.println(input);
}
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("copy!");
pw.flush();
br.close();
is.close();
pw.close();
os.close();
socket.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4.2 客户端
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8800)) {
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
String output = "this msg is from client!";
pw.write(output);
pw.flush();
socket.shutdownOutput(); // 关闭输出流,无此操作,接收下面数据;
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String input = null;
while( (input= br.readLine())!=null){
System.out.println(input);
}
pw.close();
os.close();
br.close();
is.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}