再美不及姑娘你
又见西风上碧树
posts - 135,comments - 7,views - 47976

一、TCP通信原理

TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,

一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信

Java对于基于TCP协议的网络提供了良好的封装,使用Socket对象代表两端的通信端口,并通过Socket产生IO流进行网络通信

Java为客户端提供了Socket类,为服务端提供了ServerSocket类

二、TCP发送数据

发送数据的步骤:

1.创建客户端的Socket对象

Socket(String host, int port): 创建流套接字并将其连接到指定主机上的指定端口号,IP地址可以是字符串类型的。

2.获取输出流、写数据outputstream

getOutputStream():返回此套接字的输出流。

3.释放资源

package Demo042002;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
/*TCP发送端
1.创建客户端的Socket对象
Socket(String host, int port): 创建流套接字并将其连接到指定主机上的指定端口号,IP地址可以是字符串类型的。
2.获取输出流、写数据outputstream
getOutputStream():返回此套接字的输出流。
* */
public class TcpSend {
  public static void main(String[] args) throws IOException {
      //创建客户端的Socket对象
      //Socket(String host, int port): 创建流套接字并将其连接到指定主机上的指定端口号,IP地址可以是字符串类型的。
      Socket s=new Socket("cy",12345);
      //获取输出流、写数据outputstream
      OutputStream ops = s.getOutputStream();
      ops.write("最美不过姑娘你".getBytes());
      //释放资源
      ops.close();
        s.close();
  }
}

这仅仅是发送数据的步骤,我们知道TCP通信需要经过“三次握手”,所以如果直接运行会报错

三、TCP接收数据

步骤:

1.创建服务器端的Sockt对象(ServerSocket)

2.监听客户端连接,返回一个Soket对象

accept() 侦听要连接到此套接字并接受它返回一个Soket对象。

3.获取输入流,读数据;

getInputstream()

4.释放资源

package Demo042002;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*服务端
1.创建服务器端的Sockt对象(ServerSocket)
2.获取输入流,读数据;
getInputStream():返回此套接字的输入流。
3.释放资源
* */
public class TcpRecive {
  public static void main(String[] args) throws IOException {
      //创建服务器端的Sockt对象(ServerSocket)
      ServerSocket ss=new ServerSocket(12345);
      //accept() 侦听要连接到此套接字并接受它返回一个Soket对象
      Socket s = ss.accept();
      //获取输入流,读数据;
      InputStream ips = s.getInputStream();
      byte[] bytes=new byte[1024];
      int len;
      while ((len=ips.read(bytes))!=-1){
          System.out.println("数据是"+new String(bytes,0,len));

      }
      //释放资源
      ips.close();
      ss.close();
  }
}

在建立服务端并启动后,客户端就可以通过三次握手进行与服务端的通信

 

 

posted on   再美不及姑娘你  阅读(177)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示