无连接通信 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...相关推荐

  1. TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)

    TCP/IP协议 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇.T ...

  2. TCP协议(Transmission Control Protocol)

    TCP协议是传输层常用传输协议.(Transmission Control Protocol) 1.可靠性 2.面向连接 3.基于字节流 4.在网络状态不佳时会降低重传给系统带来的宽带开销 5.通信连 ...

  3. 【苹果相册推软件源码】iMessage提出了UDP(UserDatagramprotocol,用户数据新闻协议

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

  4. java 采用串口通信实现LED屏发送数据中文乱码问题

    java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...

  5. UDP通信——使用python通过UDP通信来发送和解析数据

    UDP通信--使用python通过UDP通信来发送和解析数据 经常我们要发送的信息是结构化的数据,此时发送和接收数据结构就是一个很基本的工作,怎样来实现呢? 发送和接收数据结构我们要用到 python ...

  6. 【JavaEE】TCP协议的十大原理保姆讲解(Transmission Control Protocol)

    博主简介:想进大厂的打工人 博主主页:@xyk: 所属专栏: JavaEE初阶 上一篇文章讲了UDP协议,那么这篇文章我来讲讲TCP协议,TCP协议相对UDP协议难一些,内容相对更多. TCP,即Tr ...

  7. TCP 传输控制协议(Transmission Control protocol)

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接(三次握手),传输完毕后还要断开连接(四次挥手) ...

  8. 用户数据包协议(user datagram protocol)——UDP

    用户数据报协议(User Datagram Protocol,UDP)是无连接不可靠传输层协议.它不提供主机到主机通信,它除了提供进程到进程之间的通信之外,就没有给 IP 服务增加任何东西.此外,它进 ...

  9. 【JAVA】UDP通信

    目录 1.[UDP通信] 1.1[UDP发送数据] 1.2[UDP接收数据] 1.3[UDP通信--示例项目] 2.[UDP的三种通信方式] 2.1[单播] 2.2[组播] 2.2.1[组播地址] 2 ...

最新文章

  1. Linux命令find的35个实例
  2. 设计模式之观察者模式(Observer)摘录
  3. SFB 项目经验-65-使用域管理员安装不了Exchange 2010 SP3 CU21
  4. 吐血整理:手拿几个大厂offer的秘密武器!
  5. bgp通告四原则_BGP的十三条选路原则
  6. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之自定义表单开发随笔四
  7. SAP Spartacus开启SSR服务器端渲染之后,和默认客户端渲染的差异比较
  8. 【Faster RCNN detectron2】detectron2实现Faster RCNN目标检测
  9. 信息学奥赛C++语言:打擂台
  10. android 开发规范
  11. redisson版本_通用Redisson版本
  12. 磁盘启动次数计算原理总结
  13. html canvas php,关于HTML canvas的总结
  14. greasemonkey油猴子初学过程中遇到的问题
  15. 读《我喜欢生命本来的样子》记(一)
  16. 在oracle 中编写一个程序,用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法...
  17. 学计算机基础word题,计算机操作基础Word练习题
  18. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶......
  19. 上升了百分之几怎么算_上涨百分之多少怎么算
  20. 方舟php服务器控制,《方舟:生存进化》私人服务器设置教程

热门文章

  1. 新手学v-text指令
  2. oracle缺少控制文件,关于oracle丢失控制文件的恢复办法
  3. 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
  4. aes 结尾 特殊字符_乔迁庆典主持词开头及结尾
  5. 除了html 还有什么页面,HTML页面布局有哪些?
  6. 沃嘉工业机器人及自动化_智能制造和工业自动化的新宠儿——工业机器人
  7. 盗墓笔记android,盗墓笔记手游下载
  8. python子类_python创建子类的方法分析
  9. imread读不到图片_家用水表怎么读?超强实用技能快速get
  10. 数组的最长递减子序列java_求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...