java基础:网络编程TCP,URL
获取域名的两种方法:
package com.lanqiao.java.test;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class testInetAddress {
public static void main(String[] args) throws Exception {
InetAddress inet=InetAddress.getByName("www.atguigu.com");//通过域名获取
System.out.println(inet);//获取域名和ip
System.out.println(inet.getHostName());//获取ip地址对应的域名
System.out.println(inet.getHostAddress());//获取ip地址
System.out.println();
InetAddress inet1=InetAddress.getLocalHost();//获取本机的ip,域名
System.out.println(inet1);
System.out.println(inet1.getHostName());//获取本机域名
System.out.println(inet1.getHostAddress());//获取本机的ip地址
}
}
-------------------------------------------------------------------------------------------
TCP编程实现客户端和服务器端的互动
package com.lanqiao.java.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import org.junit.Test;
/*
* 实现一个基本的客户端/服务器端程序。主要实现服务器端一直监听某个端口,等待客户端连接请求。
* 客户端根据IP地址和端口号连接服务器端,从键盘上输入一行信息,发送到服务器端,
* 然后接收服务器端返回的信息,最后结束会话。这个程序一次只能接受一个客户连接。
* 本机域名和ip地址:DADI/10.5.78.19
* 客户端会向服务器端发送
* */
public class TestTCP {
@Test
//客户端:写入数据
public void writerTCP() throws IOException{
Socket s=null;
OutputStream os=null;
try {
s=new Socket("10.5.78.19", 8080);
os=s.getOutputStream();
os.write("hello.afasdfasd".getBytes());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(os!=null){
os.close();
}
if(s!=null){
s.close();
}
}
}
@Test
//服务器端,读取数据
public void readTCP() throws Exception{
ServerSocket ss=null;
InputStream is=null;
try {
ss=new ServerSocket(8080);
Socket s1=ss.accept();
is=s1.getInputStream();
byte [] b=new byte[10];
int len;
while((len=is.read(b))!=-1){
String str=new String(b, 0, len);
System.out.println(str);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is!=null){
is.close();
}
if(ss!=null){
ss.close();
}
}
}
}
-----------------------------------------------------------------------------------------
URL:统一资源定位符,一个url的对象,对应着互联网上一个资源,
可以通过url的对象调用其相对应的方法,将此资源读取;
执行时必须在联网的情况下练习:
package com.lanqiao.java.test;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
public static void main(String[] args) throws IOException {
URL url=null;
InputStream is=null;
try {
url=new URL("http://127.0.0.1:8080/examples/HelloWorld.txt");//获取url链接
is=url.openStream();
//一字节的方法读取
byte[] b=new byte[20];
int len;
while((len=is.read(b))!=-1){
String str=new String(b,0,len);
System.out.println(str);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is!=null){
is.close();
}
}
}
}
java基础:网络编程TCP,URL的更多相关文章
- java基础-网络编程(Socket)技术选型入门之NIO技术
java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...
- 二十三、Java基础--------网络编程
Java中另一个重要技术就是网络编程了,为了更好的学习web方向的知识,有必要对java之网络编程好好学习,本文将围绕网络编程技术进行分析. 常见的网络协议:UDP.TCP UDP 1. 将数据源和目 ...
- Java基础——网络编程(三)
TCP 网络编程 -- tcp 分为客户端和服务端 -- 客户端对应的对象是 Socket -- 服务端对应的对象是 ServerSocket -- 如果客户端先启动,则出现 connection r ...
- Java基础——网络编程(二)
一.套接字 Socket 网络驱动程序提供给应用程序编程的接口和一种机制,可以比喻成一个港口码头 应用程序只要把货放在这,就算完成了货物的运送.它在应用程序中创建,通过一种绑定机制与驱动程序建立关系, ...
- Java基础——网络编程
一.网络编程概述 概述: Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序. Java提供的网络类库,可以实现无痛的网络连接,联网 ...
- JAVA基础——网络编程之网络链接
一.网络编程基本概念 1.OSI与TCP/IP体系模型 2.IP和端口 解决了文章最开始提到的定位的问题. IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证):网络编程是和远程计算 ...
- Java基础——网络编程(一)
本文主要记录网络编程的一些基础知识,学了前班部分,对专业术语有些蒙,但是,收货也是很多很多的.观察了自己计算机的进程,查找其他网络地址的IP,对互联网的层次关系有了更深一步的了解.下面多是概念的摘录, ...
- java基础—网络编程
一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程.
- 梦入IBM之java基础-网络编程
如今我们来谈谈最后的内容:网络编程: 1):TCP中是线程与线程进行通讯!内部的执行机制是这种:先有一个线程去监听某个port.然后假设有Socket连接上来了以后,server会生成一个Socket ...
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
随机推荐
- ASPNET服务端控件练习(一个机试题)
简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, str ...
- oracle 内外连接,左连接,右连接 区别
首先讲解一下 on 与where后面接的条件的区别 on和where条件的区别如下:1. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录.2.where条件是在 ...
- jquery on 动态添加的元素,神奇的bug
$(document.body).on("click", ".comments-item .link-comment", function () { 平时用 d ...
- Android -- 自定义View小Demo(一)
1,现在要实现下图的简单效果,很简单 ,就是使用paint在canvas上绘制5中不同颜色的圆圈,效果图如下: 这是绘制基本图形一种最简单的方法,下面是它的代码 ,注释写的很详细,也就不去讲解了 M ...
- webpack 无法安装
命令行输入: npm install webpack -g 解决办法:增加环境变量 D:\nine\trunk\node_modules\.bin\ bin目录下有webpack.cmd 如果还是 ...
- OpenGl And 视图
OpenGl And 视图 标签(空格分隔): game 简介 本文主要介绍坐标系的观念, 以及在openGL中的视图及其相关的变换. 大纲 视图.模型.投影变换概念 Opengl中对各种变换的支持 ...
- SqlServer 的提示符(Option/With等提示符)不是什么时候都可以用的
我们在做SqlServer的查询调优的时候,经常会在语句末尾用到option(loop/merge/hash join)或在join语句前直接声明loop/merge/hash,来强制SqlServe ...
- SQL SERVER: 合并相关操作(Union,Except,Intersect) - 转载
SQL Server 中对于结果集有几个处理,值得讲解一下 1. 并集(union,Union all) 这个很简单,是把两个结果集水平合并起来.例如 SELECT * FROM A UNION SE ...
- Windows 7 64位下使用ADB驱动
早上在cmd输入adb devices想查询正在执行的虚拟器有多少个,但是执行结果出现 C:\Users\Administrator>adb deviceserror: C:\Users\Adm ...
- android 项目学习随笔五(JSON解析)
1.利用Xutils获取网络数据 /** * 从服务器获取数据 需要权限: <uses-permission * android:name="android.permission.IN ...