关键词:
Java 使用TCP UDP发送信息
网络通信的三要素
- IP地址
- 端口号
- 网络通信协议
TCP
客户端
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClient
public static void main(String[] args) throws Exception
// 创建要发生的ip地址
InetAddress inetAddress = InetAddress.getByName("localhost");
// 创建套接字
Socket socket = new Socket(inetAddress, 9999);
// 拿到输入流
OutputStream outputStream = socket.getOutputStream();
// 向输入流中放入要发送的信息并发送
outputStream.write("你好".getBytes());
// 关闭
outputStream.close();
socket.close();
服务端
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer
public static void main(String[] args) throws Exception
// 创建服务器套接字,指定接收的端口
ServerSocket serverSocket = new ServerSocket(9999);
// 接收信息
Socket socket = serverSocket.accept();
// 下面是把信息存放到新的流中
// 拿到输入流
InputStream inputStream = socket.getInputStream();
// 创建存放信息的数组输出流
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
// 逐行读取信息放入buffer并放到输出流中
while ((len = inputStream.read(buffer)) != -1)
byteArrayOutputStream.write(buffer, 0, len);
// 输出接收到的信息
System.out.println(byteArrayOutputStream);
// 关闭
byteArrayOutputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
先启动服务端,再启动客户端,之后可以看到服务端收到了客户端发的信息
UDP
发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpSender
public static void main(String[] args) throws Exception
DatagramSocket datagramSocket = new DatagramSocket();
InetAddress inetAddress = InetAddress.getByName("localhost");
DatagramPacket datagramPacket = new DatagramPacket(
"你好".getBytes(), // 发送的数据
0, // 数据长度从0开始
"你好".getBytes().length, // 到末尾结束
inetAddress, // ip地址
20000 // 端口号
);
// 发送
datagramSocket.send(datagramPacket);
datagramSocket.close();
接收端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpReceiver
public static void main(String[] args) throws Exception
DatagramSocket socket = new DatagramSocket(20000);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, 0 , buffer.length);
socket.receive(packet);
System.out.println(new String(packet.getData(), 0, packet.getLength()));
先启动接收端,再启动发送端
黏包的原理(tcpudp)(代码片段)
黏包 指数据混乱问题(发送端发送数据,接收端不知如何去接收) 只有tcp协议才会发送粘包,udp不会发生黏包(tcp) 有一个合包机制(nagle算法),将多次连续发送且间隔较小的数据,进行打包成一... 查看详情
java学习网络编程全总结——tcpudp多线程io流socket简易在线咨询聊天室java爬虫(代码片段)
目录网络编程1.1、概述1.2、网络通信的要素1.3、IP1.4、端口(port)1.5、通信协议1.6、TCP文件上传Tomcat1.7、UDP发送消息构造方法摘要构造方法摘要咨询DatagramPacket.getData()与DatagramPacket.getLength()的误区trimstartsWith在线咨询:两个人都... 查看详情
bingbingc(网络编程tcpudp)(代码片段)
上一篇目录标题字节序字节序转化TCP和UDPUDPsocket编程接口编码TCP接口检查连接是否成功代码单线程多进程服务端多线程高级IO参考字节序小端字节序:低位放在低地址大端字节序:低位放在高地址主机字节序:指的是机器本身的字节... 查看详情
bingbingc(网络编程tcpudp)(代码片段)
上一篇目录标题字节序字节序转化TCP和UDPUDPsocket编程接口编码TCP接口检查连接是否成功代码单线程多进程服务端多线程高级IO参考字节序小端字节序:低位放在低地址大端字节序:低位放在高地址主机字节序:指的是机器本身的字节... 查看详情
tcpudp的基本概念(代码片段)
...ransmissionControlProtocol)为传输控制协议。TCP所有的通信都会使用源端口和目的端口,这些信息都可以在TCP的头部信息中找到。为使数据传输到远程服务器端或设备的特定应用中,TCP数据包必须知道远程服务所监听的端口。如果尝试... 查看详情
36基于tcpudp协议的嵌套字通信(代码片段)
一、套接字工作流程1.1、套接字流程 服务器端先初始化socket:(创建套接字模块) 和端口绑定bind:(将地址绑定到套接字) 对端口进行监听listen:(监听链接) 调用accept堵塞:(接收服务器链接) 等待客... 查看详情
使用javamail发送邮件03(代码片段)
使用java发送邮件,这里发件是使用qq邮箱发送;如果使用其他类型邮箱,将qq相关的信息改成对应的邮箱;importjava.io.File;importjava.util.ArrayList;importjava.util.List;importjava.util.Properties;importjavax.activation.DataHandler;importjavax.activati 查看详情
java示例代码_使用XMLHttpRequest中的信息。发送(字符串)
java示例代码_使用XMLHttpRequest中的信息。发送(字符串) 查看详情
python实现tcpudp客户端(代码片段)
1、TCP客户端#-*-coding:UTF-8-*-__author__='michael'importsockettarget_host="www.baidu.com"target_port=80#创建一个socket对象clnt=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#连接客户端clnt.connect((target_host,target_port))#发送一些数据clnt.sen... 查看详情
zabbix使用邮件发送告警信息(代码片段)
配置系统mail命令,使其可以发送外网邮件mail 命令配置修改zabbix_server配置文件,使其可以执行告警脚本[[email protected]etc]#vim/usr/local/zabbix/etc/zabbix_server.conf474###Option:AlertScriptsPath475#Fullpathtolocationofcustomalert 查看详情
socket编程tcpudp通信总结(代码片段)
...微信、浏览器等程序,都与Socket编程有关。我们平时使用浏览器查资料,这个过程的技术原理是怎样的呢?我们平时使用浏览器 查看详情
使用java发送邮件(代码片段)
...用户发送邮件,例如激活邮件、通知邮件等等。那么如何使用Java来给用户发送邮件呢?使用java代码发送邮件使用工具类发送邮件使用Spring进行整合发送邮件发送带附件的邮件 一.使用Java代码发送邮件第一步:导入依赖坐标<... 查看详情
spring中使用网易邮箱或qq邮箱发送信息(代码片段)
Spring中使用网易邮箱或qq邮箱发送信息1.所需依赖2.代码3.qq邮箱配置获取授权码4.网易邮箱配置获取授权码测试类可能要引入一些依赖,大家自行引入就行,能发送成功邮件就行发送Email服务1.所需依赖<dependency><groupId>org.sprin... 查看详情
springboot中使用网易邮箱或qq邮箱发送信息(代码片段)
SpringBoot中使用网易邮箱或qq邮箱发送信息1.所需依赖2.代码3.qq邮箱配置获取授权码4.网易邮箱配置获取授权码5.测试类可能要引入一些依赖,大家自行引入注意,没有配置properties文件直接运行会报错发送Email服务1.所需依赖<dependency... 查看详情
tcpudp通信(代码片段)
...型1.应用层 上面3层:应用程序、协议:HTTP、FTP2.传输层 TCPUDP3.网络层 IP(不可靠)ARPRARPICMP4.数据链路层 下面2层 UDPUserDatagramProtocol无连接的传 查看详情
tcpudp之间的区别
UDP:面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息 优点:UDP速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送 缺点:UDP传送数据前并不与对方建立连接,对接收的数据也... 查看详情
rails使用云片和chinasms发送验证信息(代码片段)
rails6,云片,china_sms,需要实现短信验证和语音验证。1.添加china_sms的gem包:#ChinaSMSclientgem‘china_sms‘,github:‘saberma/china_sms‘,branch:‘master‘然后运行:bundleinstall2.配置在‘config/initializers/china_sms.rb‘文件中添加一行配置:ChinaSMS 查看详情
javalearn#(14)网络及分类tcpudp协议ipsockettcp编程udp编程(代码片段)
1.网络基本概念1.1计算机网络定义:是指将地理位置不同的具有独立功能(没有网络可以独立存在的)的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议... 查看详情