?TCP发送与接收数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了?TCP发送与接收数据相关的知识,希望对你有一定的参考价值。

//客户端

package liu.net.tcp;


import java.io.IOException;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;


public class Client {

/* tcp 客户端建立的步骤

* 1.建立tcp客户端服务

* 1.1 因为是面向连接的,必须有连接才可以进行通信

* 1.2在建立客户端时,必须明确目的地地址和端口

* 2.一旦建立,就有了传输数据的通道,可以在通道中进行数据传输

* 这个传输其实就是通过流来实现的,这个流就是 socket io 流

* 3.只要获取 socket io 中的写动作就可以把数据写入socket流中发给服务器端

* 4.关闭资源

*/

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

System.out.println("客户端启动。。。");

//1.创建客户端对象,明确目的地址和端口号

Socket s = new Socket("127.0.0.1",8899);

//2.获取socket流中的输出流,将数据发送给服务器

OutputStream out = s.getOutputStream();

//通过输出流写数据

out.write("TCP 客户端发送给服务器的数据".getBytes());

//关闭资源

s.close();

}

}



//服务器端

package liu.net.tcp;


import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;


public class Server {

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

/*创建TCP 服务器端步骤:

* 1.创建socket服务器端服务。服务器端为了让客户端能连上,必须提供端口。监听一个端口

* 2.获取客户端对象。通过客户端的socket流和对应的客户端进行通信

* 3.获取客户端socket的读取流

* 4.读取数据并显示在服务器端

* 5.关闭资源

*/

System.out.println("服务器启动。。");

//1.创建服务端对象

ServerSocket ss = new ServerSocket(8899);

//2.获取客户端对象

Socket s = ss.accept();

//3.获取客户端的输入流

InputStream is = s.getInputStream();

byte[] buf = new byte[1024];

int len = is.read(buf);

String data = new String(buf,0,len);

System.out.println("服务器端收到的信息:"+data);

}


}


以上是关于?TCP发送与接收数据的主要内容,如果未能解决你的问题,请参考以下文章

Java:通过 TCP 发送/接收数据并从 UDP 接收图像

UDP与TCP协议

快速了解TCP的流量控制与拥塞控制

简单易懂TCP的三次握手与四次挥手

TCP发送和接收数据包

.NET下使用Socket进行TCP传输时数据发送或接收不全