网络编程

获取ip

  1. InetAddress id = InetAddress.getLocalHost(); // InetAddress id = InetAddress.getByName("www.baidu.com");
  2. System.out.println(id); // DESKTOP-S2V8PJF/192.168.0.35
  3. System.out.println(id.getHostName()); // DESKTOP-S2V8PJF
  4. System.out.println(id.getHostAddress()); // 192.168.0.35

UDP程序示例

  1. 发送端
  2. public class Send {
  3. public static void main(String[] args) {
  4. try {
  5. byte[] sendData = "发送的数据".getBytes();
  6. InetAddress id = InetAddress.getByName("127.0.0.1");
  7. DatagramPacket dp = new DatagramPacket(sendData, sendData.length, id, 9000);
  8. DatagramSocket ds = null;
  9. try {
  10. ds = new DatagramSocket();
  11. try {
  12. ds.send(dp);
  13. } catch (IOException e) {
  14. e.printStackTrace();
  15. }
  16. } catch (SocketException e) {
  17. e.printStackTrace();
  18. } finally {
  19. ds.close();
  20. }
  21. } catch (UnknownHostException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. }
  26. 接收端
  27. public class Receive {
  28. public static void main(String[] args) {
  29. DatagramSocket ds = null;
  30. DatagramPacket dp = null;
  31. byte[] receiveData = new byte[1024];
  32. try {
  33. ds = new DatagramSocket(9000);
  34. dp = new DatagramPacket(receiveData, receiveData.length);
  35. try {
  36. ds.receive(dp);
  37. System.out.println("由" + dp.getAddress().getHostAddress()+ ":" + dp.getPort() + "发送的数据->" + new String(receiveData, 0, dp.getLength()));
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. } catch (SocketException e) {
  42. e.printStackTrace();
  43. }finally {
  44. ds.close();
  45. }
  46. }
  47. }

TCP程序

  1. 客户端
  2. public class ClientSide {
  3. public static void main(String[] args) {
  4. Socket so;
  5. OutputStream os;
  6. try {
  7. so = new Socket("127.0.0.1", 9000);
  8. os = so.getOutputStream();
  9. os.write("我是 客户端".getBytes()); // 给服务器发送数据
  10. InputStream in = so.getInputStream();
  11. byte[] data = new byte[1024];
  12. int len = in.read(data);
  13. System.out.println(new String(data, 0, len)); // 接受服务器数据
  14. so.close();
  15. } catch (IOException e) {
  16. e.printStackTrace();
  17. }
  18. }
  19. }
  20. 服务端
  21. public class ServerSide {
  22. public static void main(String[] args) {
  23. ServerSocket ss;
  24. Socket so;
  25. OutputStream os;
  26. try {
  27. ss = new ServerSocket(9000);
  28. so = ss.accept();
  29. InputStream in = so.getInputStream();
  30. byte[] data = new byte[1024];
  31. int len = in.read(data);
  32. System.out.println(new String(data, 0, len)); // 接受客户端数据
  33. os = so.getOutputStream();
  34. os.write("知道了".getBytes()); // 发送数据给客户端
  35. os.close();
  36. so.close();
  37. ss.close();
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. }

结语

  1. 本文章是java成神的系列文章之一
  2. 如果你想知道,但是本文没有的,请下方留言
  3. 我会第一时间总结出来并发布填充到本文

java成神之——网络编程基本操作的更多相关文章

  1. java成神之——ImmutableClass,null检查,字符编码,defaultLogger,可变参数,JavaScriptEngine,2D图,类单例,克隆,修饰符基本操作

    ImmutableClass null检查 字符编码 default logger 函数可变参数 Nashorn JavaScript engine 执行脚本文件 改变js文件输出流 全局变量 2D图 ...

  2. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  3. 转载_2016,Java成神初年

    原文地址:http://blog.csdn.net/chenssy/article/details/54017826 2016,Java成神初年.. -------------- 时间2016.12. ...

  4. 20165310 Java实验五《网络编程与安全》

    20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

  5. java成神之——Stream和Optional

    Stream流 基本使用 流关闭 平行流 流重用 iterator转换成流 分组计数 无限流 流转集合 压缩流 统计数值流 集合转换流遍历 流拼接 reduce 使用流生成随机字符串 流的包装流 几种 ...

  6. 一份完整的 Java 成神路线图,值得收藏!

    Java,是现阶段中国互联网公司中,覆盖度最广的研发语言. 有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的完整的Java成神路线图. 一:常见模式与工具 学习Java ...

  7. Java成神路上之设计模式系列教程之一

    Java成神路上之设计模式系列教程之一 千锋-Feri 在Java工程师的日常中,是否遇到过如下问题: Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式? 什么是设计模式?你是否在 ...

  8. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  9. java成神之——安全和密码

    安全和密码 加密算法 公钥和私钥加密解密 生成私钥和公钥 加密数据 解密数据 公钥私钥生成的不同算法 密钥签名 生成加密随机数 基本用法 指定算法 加密对象 SealedObject Signatur ...

随机推荐

  1. ubuntu14.04搭建Hadoop2.9.0集群(分布式)环境

    本文进行操作的虚拟机是在伪分布式配置的基础上进行的,具体配置本文不再赘述,请参考本人博文:ubuntu14.04搭建Hadoop2.9.0伪分布式环境 本文主要参考 给力星的博文——Hadoop集群安 ...

  2. HyperV创建NAT网络

    创建NAT内部网络,使用PowerShell完成. https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-gu ...

  3. MySQL数据库维护、备份、和复制

    预防性维护的基本原则:1)启动MySQL服务器提供的自动恢复功能2)有计划的开展预防心维护工作,定期对表进行检查,日常的表检查有助于及时发现各种小问题,并在问题变得更糟之前将其纠正.3)建立数据库备份 ...

  4. Database项目中关于Procedure sp_refreshsqlmodule_internal的错误

    最近项目中发现一怪问题,使用DB项目发布数据库时,总提示 “(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level 16, S ...

  5. Android面试题整理

    1.    请描述下Activity的生命周期. 2.    如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 3.    如何将一个Activity设置成窗口的样 ...

  6. C#调用EasyPusher推送到EasyDarwin实现视频流中转

    本文转自:http://www.cnblogs.com/kangkey/p/6772863.html 最近在公司项目中,遇到需要将内网的监控视频信息,在外网进行查看,最终通过查阅资料,发现EasyDa ...

  7. Python读取指定目录下指定后缀文件并保存为docx

    最近有个奇葩要求 要项目中的N行代码 申请专利啥的 然后作为程序员当然不能复制粘贴 用代码解决.. 使用python-docx读写docx文件 环境使用python3.6.0 首先pip安装pytho ...

  8. web service(转载)

    原文引自:http://blog.csdn.net/wooshn/article/details/8069087 WebService到底是什么? 一言以蔽之:WebService是一种跨编程语言和跨 ...

  9. Python解析excel文件并存入sqlite数据库

    最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...

  10. vue前端开发那些事——前言

    如上图所示,用vue开发一个小型网站所涉及到的知识点.这只是前端部分已经这么多了.接下来我分解开来说. 1.Node 当我们开发vue项目的时候,首先要安装Node.js,那么我们即使当时不理解为什么 ...