JAVA网络编程04---使用Tcp发送和接收数据

注意哦前面我们使用UDP协议发送端和接收端使用的都是DatagramSocket类的对象
只不过两者使用的构造方法不一样 ,发送端使用的的是无参构造,接收端使用的是带参构造

注意注意

1.  TCP发送数据

在这里插入图片描述
TCP发送数据的步骤
1.创建socket对象 直接使用socket类创建就可以
socket的构造方法有两个
一个是socket(String Host ,int port)
一个是socket(InetAddress innet , int port)

一般为了方便我门就是用第一个构造方法

2.获取输出流写数据

socket类里面有自己获取输出流的方法,因为我们是发送数据所以使用输出流

3.释放资源

具体的代码

/*
实现TCP发送数据
注意TCP要先建立连接才能进行通信,所以如果你先打开发送端程序就会报错 Connection refused: connect
因为没有办法和接收端三次握手
*/


public static void main(String[] args) throws IOException {

//创建socket对象
//创建对象方式1
//Socket socket = new Socket(InetAddress.getByName("192.168.0.109") , 12345);
//创建对象方式2
Socket socket = new Socket("192.168.0.109" , 12345);


//创建输出流对象
OutputStream os = socket.getOutputStream();


//输出对象
os.write("hello TCP 我来了".getBytes());

//释放资源
socket.close();


}

服务器端接收数据
在这里插入图片描述
程序 : 我在接收数据的时候进行了优化 。获得输入流以后我又把字节输入流转化为了字节缓冲流输入流

public static void main(String[] args) throws IOException {

//创建服务器socket对象
ServerSocket ss = new ServerSocket(12345);

//获取输入流对象
//但是我们会发现serversocket里面并没有获得输入流的方法我们还记得socket
// 里面是有获取输入 和输出流的方法的 所以看看serversocket 里面有没有什么方法可以得到一个socket
//是有的 serversocket的accept方法返回一个socket对对象
// 这一步叫做监听客户端的连接
Socket socket = ss.accept();

//获取输入流的
InputStream inputStream =socket.getInputStream();

//使用字节缓冲流读取数据
BufferedInputStream bis = new BufferedInputStream(inputStream);

//一次读取一个字节数组
byte by[] = new byte[1024];
int len ;
while ((len = bis.read(by)) != -1){ //实现了吧数据读到数组里面
System.out.println(new String(by,0, len));
}

//释放资源
socket.close();

}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值