- 网络编程详解
- 网络编程是指编写运行在多个设备的程序,这些程序都是通过网络连接起来
- 基于java.net包中的API来完成底层的通信细节,可以直接使用这些封装好的类和接口来解决问题,而不用关注通信细节
- 常用协议支持:
- TCP :(传输控制协议)TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP是位于IP层之上,应用层之下的中间层。TCP是一种可靠的通信协议,保障两个应用程序之间的可靠通信。被称TCP/IP
- UDP:(用户数据报协议)UDP是无连接的协。缺点UDP缺乏可靠性且属于无连接协议,所以应用程序必须容许一些丢失、错误或重复的数据包
- Socket编程:这是使用最广泛的网络概念,也称套接字,常用方法
public Socket(String host,int port){}
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(7777);
System.out.println("服务器正在监听");
Socket socket = serverSocket.accept();
OutputStream ops = socket.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(ops));
bufferedWriter.write("与服务器连接成功");
bufferedWriter.newLine();
bufferedWriter.flush();
bufferedWriter.close();
socket.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket(InetAddress.getLocalHost(),7777);
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String s = bufferedReader.readLine();
System.out.println(s);
bufferedReader.close();
socket.close();
}
}