系列第2篇,TCP/IP - 设备内的数据传输。
1)服务端:获取输入流和输出流;从客户端收到请求后,再新建一个输入流得到数据,再通过输出流返回数据给客户端。
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
System.out.println("Listening to request: ");
try (ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept()) {
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes, 0, len));
String path = "E:\\IDEA Projects\\Itrocks_02_TCP_IP\\src\\webapp\\index.html";
FileInputStream fis = new FileInputStream(path);
int read = fis.read(bytes);
os.write(bytes, 0, read);
} catch (IOException e) {
e.printStackTrace();
}
}
}
2)客户端
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8888)) {
OutputStream os = socket.getOutputStream();
InputStream is = socket.getInputStream();
os.write("give me index".getBytes());
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes, 0, len));
} catch (IOException e) {
e.printStackTrace();
}
}
}