java 发送tcp_Java TCP发送与接收

本文介绍了Java中TCP的使用,包括发送端和接收端的实例代码。发送端通过Socket连接指定IP和端口,发送字符串;接收端使用ServerSocket监听并接收数据,输出发送者IP和接收到的字符串。
摘要由CSDN通过智能技术生成

IP地址?端口号?主机名?

什么是Socket?

什么是UDP?

什么是TCP?

UDP和TCP区别?

以上问题请自行百度,有标准解释,此处不再赘述,直接上干货!

实例:

发送端:

public class TCPClient {

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

//创建Socket对象

Socket s = new Socket(InetAddress.getByName("127.0.0.1"),10086);

//获取输出流对象

OutputStream os = s.getOutputStream();

//发送数据

String str = "This TCP,im comming";

os.write(str.getBytes());

//释放

s.close();

}

}

接收端:

public class TCPServer {

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

//创建Socket对象

ServerSocket ss = new ServerSocket(10086);

//监听(阻塞)

Socket s = ss.accept();

//获取输入流对象

InputStream is = s.getInputStream();

//获取数据

byte[] bys = new byte[1024];

int len;

len = is.read(bys);

//输出数据

InetAddress address = s.getInetAddress();

System.out.println("sender:"+address);

System.out.println(new String(bys,0,len));

//释放

s.close();

/*

* 说明:

* 当你访问百度的时候,退出了,它的服务就关了吗? 不关,还会继续监听

*/

}

}

测试:

先运行server服务端,开启监听

在开启发送端

服务器就会监听到发送端发来的消息

0937fee973a921f30fbbf2ae9275fc52.png

最后附上API 文档说明,防止有些人看不懂代码

daa5a1288f6d7878cd036e93be71b3bb.png

82d03c7d8e13c1a1aa2e225f9c0802b8.png

37bdac7a34b452778c1fd217a765f34e.png

ae4e6936d05d57c8f2f411d0fb96eba1.png

d2f86368fbf0d965afd20c47734953d4.png

要使用Java编写TCP协议发送接收数据接口,可以使用Java自带的Socket和ServerSocket类。 首先,创建一个ServerSocket对象,指定监听的端口号: ```java ServerSocket serverSocket = new ServerSocket(8888); ``` 然后,创建一个Socket对象,指定连接的IP地址和端口号: ```java Socket socket = new Socket("127.0.0.1", 8888); ``` 接下来,可以使用socket对象的输入输出流来发送接收数据: ```java // 发送数据 OutputStream outputStream = socket.getOutputStream(); outputStream.write("hello".getBytes()); // 接收数据 InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String result = new String(buffer, 0, len); System.out.println(result); ``` 当有客户端连接到ServerSocket时,可以使用accept()方法获取到一个Socket对象,然后就可以进行数据的收发了: ```java Socket socket = serverSocket.accept(); ``` 完整的代码示例: ```java // 服务端 ServerSocket serverSocket = new ServerSocket(8888); Socket socket = serverSocket.accept(); InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String result = new String(buffer, 0, len); System.out.println(result); OutputStream outputStream = socket.getOutputStream(); outputStream.write("world".getBytes()); socket.close(); serverSocket.close(); ``` ```java // 客户端 Socket socket = new Socket("127.0.0.1", 8888); OutputStream outputStream = socket.getOutputStream(); outputStream.write("hello".getBytes()); InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String result = new String(buffer, 0, len); System.out.println(result); socket.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值