JAVA------TCP发送数据和接收数据

TCP发送数据和接收数据

1.TCP通信原理

  • TCP通信协议是一种可靠的网络协议, 它在通信的两端各建立一个Socket对象, 从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信

  • Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产 生IO流来进行网络通信Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

  • 在这里插入图片描述


2.TCP发送数据的步骤:

  1. 创建客户端的Socket对象(Socket)
  2. 获取输出流,写数据
  3. 释放资源

看代码演示:

发送数据:

package TCP;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class SendDemo {
	public static void main(String[] args) throws IOException{
		//创建客户端的Socket对象
		//Socket (InetAddress adress,int port)创建流套接字并将其连接到指定IP地址的指定端口号
//		Socket s=new Socket(InetAddress.getByName("192.168.224.1"), 10000);
		//Socket (String host,int port)创建流套接字并将其连接到指定主机的指定端口号
		Socket s=new Socket("192.168.223.1", 10000);
		
		//获取输出流,写数据
		//OutputStream getOutputStream();返回此套接字的输出流
		OutputStream os=s.getOutputStream();
		os.write("hello,tcp".getBytes());
		
		//释放资源
		s.close();
		
	}

}

因为TCP是可靠传输,必须有三次握手,所以只有运行了接收数据程序时,发送数据程序才可正常使用。这里192.168.223.1是本机IP地址。


3.TCP接收数据的步骤:

  1. 创建客户端的Socket对象(SevereSocket)
  2. 获取输入流,读数据,并把数据显示在控制台
  3. 释放资源

看代码演示:

package TCP;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ReceiveDemo {
	public static void main(String[] args) throws IOException {
		//创建客户端的Socket对象(SevereSocket)
		//ServerSocket (int port)创建绑定到指定端口的服务器套接字
		ServerSocket ss=new ServerSocket(10000);	
		
		//Socket accept()侦听要连接到此套接字并接受他
		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);
			
		//释放资源
		s.close();
		ss.close();	
	}

}

最终接收端输出:“数据是:hello,tcp”

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值