网络编程

获取ip

InetAddress id = InetAddress.getLocalHost();                    // InetAddress id = InetAddress.getByName("www.baidu.com");

System.out.println(id);                                         // DESKTOP-S2V8PJF/192.168.0.35
System.out.println(id.getHostName()); // DESKTOP-S2V8PJF
System.out.println(id.getHostAddress()); // 192.168.0.35

UDP程序示例

发送端
public class Send {
public static void main(String[] args) {
try {
byte[] sendData = "发送的数据".getBytes();
InetAddress id = InetAddress.getByName("127.0.0.1");
DatagramPacket dp = new DatagramPacket(sendData, sendData.length, id, 9000);
DatagramSocket ds = null;
try {
ds = new DatagramSocket();
try {
ds.send(dp);
} catch (IOException e) {
e.printStackTrace();
}
} catch (SocketException e) {
e.printStackTrace();
} finally {
ds.close();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
} 接收端
public class Receive {
public static void main(String[] args) {
DatagramSocket ds = null;
DatagramPacket dp = null;
byte[] receiveData = new byte[1024];
try {
ds = new DatagramSocket(9000);
dp = new DatagramPacket(receiveData, receiveData.length);
try {
ds.receive(dp);
System.out.println("由" + dp.getAddress().getHostAddress()+ ":" + dp.getPort() + "发送的数据->" + new String(receiveData, 0, dp.getLength()));
} catch (IOException e) {
e.printStackTrace();
}
} catch (SocketException e) {
e.printStackTrace();
}finally {
ds.close();
}
}
}

TCP程序

客户端
public class ClientSide {
public static void main(String[] args) {
Socket so;
OutputStream os;
try {
so = new Socket("127.0.0.1", 9000);
os = so.getOutputStream();
os.write("我是 客户端".getBytes()); // 给服务器发送数据 InputStream in = so.getInputStream();
byte[] data = new byte[1024];
int len = in.read(data);
System.out.println(new String(data, 0, len)); // 接受服务器数据 so.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} 服务端
public class ServerSide {
public static void main(String[] args) {
ServerSocket ss;
Socket so;
OutputStream os;
try {
ss = new ServerSocket(9000);
so = ss.accept();
InputStream in = so.getInputStream();
byte[] data = new byte[1024];
int len = in.read(data);
System.out.println(new String(data, 0, len)); // 接受客户端数据 os = so.getOutputStream();
os.write("知道了".getBytes()); // 发送数据给客户端 os.close();
so.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

结语

本文章是java成神的系列文章之一

如果你想知道,但是本文没有的,请下方留言

我会第一时间总结出来并发布填充到本文

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. JSON.parse()和JSON.stringify()以及stringify()字符串格式化

    1. parse用于从一个字符串中解析出json对象,如var str = '{"name":"huangxiaojian","age":& ...

  2. 【Wannafly挑战赛9-B】数一数

    链接:https://www.nowcoder.net/acm/contest/71/B 题目就不贴了.. 设res[i]为第i行的最终结果,可以想到,res[i]为0或不为0.长度不是最短的字符串r ...

  3. Struts09---验证框架

    01.创建登录界面 <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  4. 出书了!实战微信小程序

    真正用心写完一本书,才知道写书真的很不容易. 我热衷喜欢分享一些技术,也喜欢钻研一些新东西,去年微信小程序刚内测的时候,我和我的同事四个人就一起研究,恰好公司有小程序相关的项目,做项目的同时,越发感觉 ...

  5. MFC中控制Tips的显示 - lingyun1120

    from:  http://www.cnblogs.com/lingyun1120/archive/2011/11/09/2243279.html MFC中为ToolTips生成了一个类CToolTi ...

  6. php 中的杂项函数

    1.$arr = range(1, 10);   print_r($arr); Array(    [0] => 1    [1] => 2    [2] => 3    [3] = ...

  7. 【英语】Bingo口语笔记(83) - hell系列

  8. 计算机信息类ComputerInfo

    using System; using System.Management; using System.Net; using System.Net.Sockets; using System.Text ...

  9. LeetCode Complex Number Multiplication

    原题链接在这里:https://leetcode.com/problems/complex-number-multiplication/description/ 题目: Given two strin ...

  10. LOJ103 子串查找

    题意 这是一道模板题. 给定一个字符串 A 和一个字符串 B ,求 B 在 A 中的出现次数.A 和 B 中的字符均为英语大写字母或小写字母. A 中不同位置出现的 B 可重叠. 分析 参照jklov ...