黑马程序员----------Java网络编程(Socket编程)笔记
来源:互联网 发布:网络语狗子什么意思 编辑:程序博客网 时间:2024/06/05 18:30
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
网络编程(Socket编程)
通讯要素:1:ip和端口号 2:网络通信协议
Ip定位一台主机,端口号定位主机上的一个应用程序
找到主机,和端口号,如何可靠高效的进行数据传输,依靠的是网络通信协议。
Java中用InetAddress类来代表ip地址,一个InetAddress对象代表一个ip地址。
如何获取InetAddress对象,通过InetAddress的getByName(String host)方法获得,其中host可以是一个域名,也可以是一个ip地址。
例如:InetAddress.getByName(“www.baidu.com”)或者InetAddress.getByName(“127.0.0.1”).
获取对象后,两个常用方法:
getHostName():获取ip地址对应的主机名
getHostAddress():获取ip地址。
获取本机的InetAddress对象
InetAddress.getLocalHost();返回一个本机IP地址对象
网络通信协议
两个重要的协议:
1:传输控制协议Tcp 2:用户数据包协议Udp
两个协议的比较:
Socket(套接字):
通信的两端都要有socket,是两台机器通信的端点。
网络通信其实就是socket通信。
Tcp/Ip协议代码演示:
客户端:
//获取一个socket对象,指定要发送到的ip地址跟端口号
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
//获取一个输出流
OutputStream os = socket.getOutputStream();
os.write("我是客户端".getBytes());
os.close();
socket.close();
服务端:
//定义一个serversocket对象,指明接收的端口号
ServerSocket ss=new ServerSocket(9090);
//通过accep()方法获得一个socket对象
Socket socket=ss.accept();
//获取输入流
InputStream is=socket.getInputStream();
byte[] bytes=new byte[4];
int len;
while((len=is.read(bytes))!=-1){
String str=new String(bytes, 0, len);
System.out.print(str);
}
is.close();
socket.close();
ss.close();
Ucp/Ip协议代码演示:
客户端:
DatagramSocket ds=new DatagramSocket();
byte[] bytes="我是客户端".getBytes();
//创建一个数据报,指明要发送的ip地址,端口号,和数据
DatagramPacket dp=new DatagramPacket(bytes, 0, bytes.length, InetAddress.getLocalHost(),9090);
//发送数据报
ds.send(dp);
ds.close();
服务端:
//创建一个datagramsocket对象并且指明端口
DatagramSocket ds=new DatagramSocket(9090);
byte[] bytes=new byte[1024];
//用来接收数据的数据报
DatagramPacket dp=new DatagramPacket(bytes, 0, bytes.length);
//接收数据到数据报
ds.receive(dp);
//获取结果
String str=new String(dp.getData(), 0, dp.getLength());
System.out.println(str);
Url:统一资源定位符,它表示Internet上某一资源的地址
url的基本结构由五部分组成:
传输协议://主机名:端口号/文件名
如:http://192.168.1.100::8080/helloword/index.html
通过url获取网络中的数据
代码演示:
//获取一个url对象
URL url=new URL("http://127.0.0.1:8080/examples/HelloWorld.txt");
//获取一个输入流
InputStream is=url.openStream();
byte[] bytes=new byte[1024];
int len;
while((len=is.read(bytes))!=-1){
String str=new String(bytes, 0, len);
System.out.print(str);
}
is.close();
Url对象可以通过openConnection();方法返回一个URLConnection对象,然后通过该对象可以获得输入输出流。
- 黑马程序员----------Java网络编程(Socket编程)笔记
- 黑马程序员---网络编程(socket编程)
- 【黑马程序员】Socket 网络编程
- 黑马程序员--网络编程Socket
- 黑马程序员--网络编程Socket
- 黑马程序员-Socket网络编程
- 《黑马程序员》java笔记->网络编程
- 黑马程序员-java学习笔记-网络编程
- 黑马程序员-java学习笔记-网络编程
- 黑马程序员JAVA笔记8--网络编程
- 黑马程序员——网络编程(Socket编程)
- 黑马程序员——网络编程(Socket编程)下
- 黑马程序员学习笔记之六(java网络编程)
- java 网络编程 黑马程序员学习笔记(3)
- java 网络编程 tcp黑马程序员学习笔记(4)
- 黑马程序员----JAVA Socket编程
- 黑马程序员——Java---Socket网络编程原理
- 黑马程序员--学习笔记(网络编程)
- 开通C博的第一篇文章
- 开通C博的第一篇文章
- 作业还是作孽?——Leo鉴书79
- 清除linux cached
- 遇到的一个类加载问题
- 黑马程序员----------Java网络编程(Socket编程)笔记
- dos命令操作文件夹
- BCG界面库在VC工程中的应用步骤
- 第0章 Python概述
- Base64 UIImage之间的转换
- 状态保存
- git 同时向两个仓库提交同一个分支
- linux awk命令详解
- 图的割点(边表集实现)