网络编程

获取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. sha1加密

    SHA-1是一种数据加密算法,该算法的思维是接纳一段明文,然后以一种不可逆的方式将它转换成一段(一般更小)密文, 也能够简略的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短.位数固定的 ...

  2. urllib.urlretrieve远程下载

    下面我们再来看看 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载到本地. >>> help(urllib.urlret ...

  3. jvm最大线程数

    摘自:http://sesame.iteye.com/blog/622670 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. ...

  4. 在VMware永久修改网

    如果想要永久性设置固定的IP地址,需要通过编辑网卡配置文件实现: 现在使用VI编辑器打开配置文件. # vi /etc/sysconfig/network-scripts/ifcfg-eth0 虽然直 ...

  5. js中去除两端逗号

    1.js replace(a,b)之替换字符串中所有指定字符的方法 var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str ...

  6. istreambuf_iterator

    #include <set> #include <stdio.h> #include <iostream> #include <istream> #in ...

  7. [转]优化Flash性能

    原文:http://www.adobe.com/devnet/flash/articles/optimizing-flash-performance.html 翻译:http://bbs.9ria.c ...

  8. JavaScript test//href

    目录 JavaScript test//href JavaScript test//href href 其实这个问题并不属于这里的.但是呢,由于一天晚上因为这个问题扰我"一夜不能眠" ...

  9. Lua编程

    lua编程大杂烩.博客其他方面也不错.先记录.http://www.cnblogs.com/stephen-liu74/category/360139.html

  10. Linux下shell命令 1

    1   [root@hadoop-namenode-1 iebd] cd /filename/filename  跳转至filename文件夹 2   [root@hadoop-namenode-1 ...