java基础 UDP通信 user datagram protocol 用户数据豆协议 TCP transmission control protocol 传输控制协议 多线程TCP...
无连接通信 UDP
客户端
package com.swift.test;import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner;/*使用UDP通信编写一个Java程序.要求:获取键盘输入的内容.发送到服务端.服务端接收后.在控制台上打印接收到的内容 客戶端1.创建键盘录入对象.获取键盘录入数据2.创建DatagramSocket对象3.创建DatagramPacket对象.并封装键盘录入的数据4.发送数据5.释放流资源 服務端1.创建DatagramSocket对象2.创建DatagramPacket对象3.接收数据存储到DatagramPacket对象中4.获取DatagramPacket对象的内容5.在控制台上打印接收到的内容6.释放流资源 */public class DemoUDPClient {public static void main(String[] args) throws IOException {Scanner scan=new Scanner(System.in);System.out.println("请输入要传达的内容:");String str=scan.nextLine();DatagramSocket datagramSocket=new DatagramSocket();byte[] buf=str.getBytes();DatagramPacket datagramPacket=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.105.22"),6464);datagramSocket.send(datagramPacket);datagramSocket.close();}}
服务端
package com.swift.test;import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;/*使用UDP通信编写一个Java程序.要求:获取键盘输入的内容.发送到服务端.服务端接收后.在控制台上打印接收到的内容 客戶端1.创建键盘录入对象.获取键盘录入数据2.创建DatagramSocket对象3.创建DatagramPacket对象.并封装键盘录入的数据4.发送数据5.释放流资源 服務端1.创建DatagramSocket对象2.创建DatagramPacket对象3.接收数据存储到DatagramPacket对象中4.获取DatagramPacket对象的内容5.在控制台上打印接收到的内容6.释放流资源 */public class DemoUDPServer {public static void main(String[] args) throws IOException {DatagramSocket datagramSocket=new DatagramSocket(6464);InetAddress ip=InetAddress.getLocalHost();String ipString=ip.getHostAddress();String nameString=ip.getHostName();System.out.println(ipString+" "+nameString);byte[] buf=new byte[1024];DatagramPacket datagramPacket=new DatagramPacket(buf,1024);datagramSocket.receive(datagramPacket);System.out.println(new String(buf));datagramSocket.close();}}
结果
有连接通信TCP
客户端
package com.swift.test;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;/*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台 客户端1.创建客户端的Socket对象2.获取Socket的输出流对象3.写数据给服务器4.获取Socket的输入流对象5.使用输入流,读反馈信息6.关闭流资源 */public class DemoTCPClient {public static void main(String[] args) throws IOException {Socket s=new Socket(InetAddress.getByName("10.254.3.116"),8888);OutputStream out=s.getOutputStream();byte[] buf="我是客户端".getBytes();out.write(buf);InputStream in=s.getInputStream();byte[] bytes=new byte[128];in.read(bytes);System.out.println(new String(bytes)); s.close();}}
服务端
package com.swift.test;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket;/*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台服务器端1.创建服务器端ServerSocket对象,指定服务器端端口号2.开启服务器,等待着客户端Socket对象的连接,如有客户端连接,返回客户端的Socket对象3.通过客户端的Socket对象,获取客户端的输入流,为了实现获取客户端发来的数据4.通过客户端的输入流,获取流中的数据5.通过客户端的Socket对象,获取客户端的输出流,为了实现给客户端反馈信息6.通过客户端的输出流,写数据到流中7.关闭流资源*/public class DemoTCPServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket=new ServerSocket(8888);InetAddress ip=InetAddress.getLocalHost();System.out.println(ip.getHostAddress());Socket s=serverSocket.accept();InputStream in=s.getInputStream();byte[] buf=new byte[128];in.read(buf);System.out.println(new String(buf));OutputStream out=s.getOutputStream();out.write("我来自服务端".getBytes()); serverSocket.close(); s.close();}}
多线程TCP
客户端
package com.swift.test;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;/*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台 客户端1.创建客户端的Socket对象2.获取Socket的输出流对象3.写数据给服务器4.获取Socket的输入流对象5.使用输入流,读反馈信息6.关闭流资源 */public class DemoTCPClient implements Runnable{@Overridepublic void run() {Socket s = null;try {s=new Socket(InetAddress.getByName("10.254.3.116"),8888);OutputStream out=s.getOutputStream();byte[] buf=("I am Client."+InetAddress.getLocalHost().getHostName()).getBytes();out.write(buf);InputStream in=s.getInputStream();byte[] bytes=new byte[128];in.read(bytes);System.out.println(new String(bytes));} catch(Exception e){e.printStackTrace();} finally {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
服务端
package com.swift.test;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket;/*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台服务器端1.创建服务器端ServerSocket对象,指定服务器端端口号2.开启服务器,等待着客户端Socket对象的连接,如有客户端连接,返回客户端的Socket对象3.通过客户端的Socket对象,获取客户端的输入流,为了实现获取客户端发来的数据4.通过客户端的输入流,获取流中的数据5.通过客户端的Socket对象,获取客户端的输出流,为了实现给客户端反馈信息6.通过客户端的输出流,写数据到流中7.关闭流资源*/public class DemoTCPServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(8888);InetAddress ip = InetAddress.getLocalHost();System.out.println(ip.getHostAddress());while (true) {Socket s = serverSocket.accept();InputStream in = s.getInputStream();byte[] buf = new byte[128];in.read(buf);System.out.println(new String(buf));OutputStream out = s.getOutputStream();out.write("I come from Server.".getBytes());s.close();}}}
多线程开启多个客户端任务
package com.swift.test;public class DemoTCPTest {public static void main(String[] args) {DemoTCPClient client=new DemoTCPClient();Thread t1=new Thread(client);Thread t2=new Thread(client);Thread t3=new Thread(client);t1.start();t2.start();t3.start();}}
转载于:https://www.cnblogs.com/qingyundian/p/8537471.html
java基础 UDP通信 user datagram protocol 用户数据豆协议 TCP transmission control protocol 传输控制协议 多线程TCP...相关推荐
- TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)
TCP/IP协议 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇.T ...
- TCP协议(Transmission Control Protocol)
TCP协议是传输层常用传输协议.(Transmission Control Protocol) 1.可靠性 2.面向连接 3.基于字节流 4.在网络状态不佳时会降低重传给系统带来的宽带开销 5.通信连 ...
- 【苹果相册推软件源码】iMessage提出了UDP(UserDatagramprotocol,用户数据新闻协议
推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...
- java 采用串口通信实现LED屏发送数据中文乱码问题
java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...
- UDP通信——使用python通过UDP通信来发送和解析数据
UDP通信--使用python通过UDP通信来发送和解析数据 经常我们要发送的信息是结构化的数据,此时发送和接收数据结构就是一个很基本的工作,怎样来实现呢? 发送和接收数据结构我们要用到 python ...
- 【JavaEE】TCP协议的十大原理保姆讲解(Transmission Control Protocol)
博主简介:想进大厂的打工人 博主主页:@xyk: 所属专栏: JavaEE初阶 上一篇文章讲了UDP协议,那么这篇文章我来讲讲TCP协议,TCP协议相对UDP协议难一些,内容相对更多. TCP,即Tr ...
- TCP 传输控制协议(Transmission Control protocol)
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接(三次握手),传输完毕后还要断开连接(四次挥手) ...
- 用户数据包协议(user datagram protocol)——UDP
用户数据报协议(User Datagram Protocol,UDP)是无连接不可靠传输层协议.它不提供主机到主机通信,它除了提供进程到进程之间的通信之外,就没有给 IP 服务增加任何东西.此外,它进 ...
- 【JAVA】UDP通信
目录 1.[UDP通信] 1.1[UDP发送数据] 1.2[UDP接收数据] 1.3[UDP通信--示例项目] 2.[UDP的三种通信方式] 2.1[单播] 2.2[组播] 2.2.1[组播地址] 2 ...
最新文章
- Linux命令find的35个实例
- 设计模式之观察者模式(Observer)摘录
- SFB 项目经验-65-使用域管理员安装不了Exchange 2010 SP3 CU21
- 吐血整理:手拿几个大厂offer的秘密武器!
- bgp通告四原则_BGP的十三条选路原则
- 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之自定义表单开发随笔四
- SAP Spartacus开启SSR服务器端渲染之后,和默认客户端渲染的差异比较
- 【Faster RCNN detectron2】detectron2实现Faster RCNN目标检测
- 信息学奥赛C++语言:打擂台
- android 开发规范
- redisson版本_通用Redisson版本
- 磁盘启动次数计算原理总结
- html canvas php,关于HTML canvas的总结
- greasemonkey油猴子初学过程中遇到的问题
- 读《我喜欢生命本来的样子》记(一)
- 在oracle 中编写一个程序,用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法...
- 学计算机基础word题,计算机操作基础Word练习题
- FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶......
- 上升了百分之几怎么算_上涨百分之多少怎么算
- 方舟php服务器控制,《方舟:生存进化》私人服务器设置教程
热门文章
- 新手学v-text指令
- oracle缺少控制文件,关于oracle丢失控制文件的恢复办法
- 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
- aes 结尾 特殊字符_乔迁庆典主持词开头及结尾
- 除了html 还有什么页面,HTML页面布局有哪些?
- 沃嘉工业机器人及自动化_智能制造和工业自动化的新宠儿——工业机器人
- 盗墓笔记android,盗墓笔记手游下载
- python子类_python创建子类的方法分析
- imread读不到图片_家用水表怎么读?超强实用技能快速get
- 数组的最长递减子序列java_求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...