socket接收不定长数据_听说你还不会Socket编程!

本文介绍了Java中的Socket编程,包括基于TCP和UDP的Socket使用。通过实例展示了如何利用UDP Socket发送和接收数据,以及实现简单的聊天功能。同时,简述了TCP Socket的client-server模型,为读者提供了TCP通信的基础知识。
摘要由CSDN通过智能技术生成
e8e31ef02ec34697d735cfcfb9503e57.gif

作者:zskingking

博客:https://www.jianshu.com/p/b04930d2b85e

上周我们描述了传输层协议TCP、UDP,但它们毕竟只是协议,看不见摸不着,那我们怎们通过TCP、和UDP进行实际传输呢?不用着急,等看完这篇文章你一定会明白的。

Socket概述

Socket中文意思为插座的意思,专业术语称之为套接字,它把TCP/IP封装成了调用接口供开发者调用,也就是说开发者可以通过调用Socket相关API来实现网络通讯。在Java中也存在Socket相关API,主要分为两个,分别是基于UDP传输协议的Socket和基于TCP传输协议的Socket,本篇文章会对基于这两种传输协议的Socket进行详细描述。

UDP Socket

通过上节的内容我们知道UDP是无连接的,只要提供对方的IP地址和端口号就能进行数据的传输,其中IP负责定位主机端口负责定位应用。知道了目标IP和目标端口号通过Java中的UDP Socket就能进行IO传输,我们来看一下具体的代码体现

**
* 发送方UDP
*/
public class UDPSocketSend {
public static void main(String[] args) throws IOException {

System.out.println("Sender Start...");

//1.创建socket服务
DatagramSocket ds = new DatagramSocket;

//2.封装数据
String str = "Did you recite words today";
byte bytes = str.getBytes;
//地址
InetAddress address =InetAddress.getByName("192.168.31.137");
//参数:数据、长度、地址、端口
DatagramPacket dp = new DatagramPacket(bytes,bytes.length,address,6666);

//3.发送数据包
ds.send(dp);

//4.关闭socket服务
ds.close;
}

/**
* 接收方UDP
*/
public class UDPSocketReceive{
public static void main(String[] args) throws IOException {
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值