学习目标:
掌握TCP的知识
学习内容:
1 TCP通信原理 ????????TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,—旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信
?
2 TCP发送数据的步骤
1.创建客户端的Socket对象(Socket) 2.获取输出流,写数据 3.释放资源
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class udpSend {
public static void main(String[] args) throws IOException {
// 创建客户端的Socket对象(Socket)
Socket tcp = new Socket("192.168.1.2",10001);
// 获取输出流,写数据
OutputStream outputStream = tcp.getOutputStream();
outputStream.write(" hello java".getBytes());
// 释放资源
tcp.close();
}
}
3 TCP接收数据接收数据的步骤
1.创建服务器端的Socket对象(ServerSocket)?
2.获取输入流,读数据,并把数据显示在控制台
3.释放资源
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class tcpReceive {
public static void main(String[] args) throws IOException {
// 1:创建服务器端的socket对象(ServerSocket)
ServerSocket socket = new ServerSocket(10001);
// Socket accept(); 侦听要连接到此套接字并接受它
Socket tcp = socket.accept();
// 2:获取输入流,读数据,并把数据显示在控制台
InputStream inputStream = tcp.getInputStream();
byte[] bys = new byte[1024];
String s = new String(bys, 0, inputStream.read(bys));
System.out.println(s);
// 3:释放资源
tcp.close();
socket.close();
}
}
4 TCP通信程序练习
客户端:数据来自于键盘录入,直到输入的数据是quit,发送数据结束
import java.io.*;
import java.net.Socket;
public class udpSend {
public static void main(String[] args) throws IOException {
// 创建客户端的Socket对象(Socket)
Socket tcp = new Socket("192.168.1.2",10001);
// 键盘录入
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 封装输出流对象
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(tcp.getOutputStream()));
String line;
while ((line = reader.readLine()) != null){
if("quit".equals(line)) {
break;
}
// 获取输出流,写数据
writer.write(line);
writer.newLine();
writer.flush();
}
// 释放资源
tcp.close();
}
}
服务器:接收到的数据在控制台输出
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class tcpReceive {
public static void main(String[] args) throws IOException {
// 1:创建服务器端的socket对象(ServerSocket)
ServerSocket socket = new ServerSocket(10001);
// Socket accept(); 侦听要连接到此套接字并接受它
Socket tcp = socket.accept();
// 2:获取输入流,读数据,并把数据显示在控制台
BufferedReader reader = new BufferedReader(new InputStreamReader(tcp.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 3:释放资源
socket.close();
}
}
|