TCP通信_接收端给出反馈
要求如下 客户端:发送数据,接收服务器反馈 服务器:接收数据,给出反馈
TCP通信_接收端给出反馈的练习
xxxxxxxxxxpackage ch22;
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;
//如何运行:先运行"a_11_2测试_接收"再运行"a_11_1测试_发送"public class a_11_1测试_发送 {
public static void main(String[] args) throws IOException {
//创建发送端的Socket对象(Socket) Socket s = new Socket("10.99.20.3",11111);
//获取输出流,写数据 OutputStream os = s.getOutputStream(); os.write("hello,tcp,你好呀".getBytes());
//接收接收端的反馈 InputStream is = s.getInputStream();//字节输入流 byte[] bys = new byte[1024]; int len = is.read(bys); String data = new String(bys,0,len);//把字节输入流读到控制台 System.out.println("接收端的反馈是:"+data);
//释放资源 is.close(); os.close(); s.close(); //提示:其实不需要释放3个,只需要释放掉s就能间接释放掉is和os,因为is和os是根据s创建的。当然也可以像上面那样把3个都释放掉
}}xxxxxxxxxxpackage ch22;
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;
//如何运行:先运行"a_11_2测试_接收"再运行"a_11_1测试_发送"public class a_11_2测试_接收 {
public static void main(String[] args) throws IOException {
//创建接收端的Socket对象(ServerSocket) ServerSocket ss = new ServerSocket(11111);
//监听发送端的连接,返回一个Socket对象 Socket s = ss.accept();
//获取输入流,读数据,并把数据显示在控制台 InputStream is = s.getInputStream(); //读数据 byte[] bys = new byte[1024]; int len = is.read(bys);//把数据读到字节数组中 String data = new String(bys,0,len);//把数据转换成字符串 System.out.println("接收端:"+data);
//给出反馈,即写数据 OutputStream os = s.getOutputStream(); os.write("我已接收到".getBytes());
//释放资源 s.close(); ss.close(); //提示:其实释放ss就可以了,因为s是根据ss创建的。当然也可以像上面那样把2个都释放掉
}}