1、基于http的网络编程
URL、URLConnection、HttpURLConnection、JarURLConnection
URL 统一资源定位器
创建URL连接用法:
首先要声明一个URL对象,定位资源地址
1、通过在 URL 上调用 openConnection 方法创建连接对象。
2、处理设置参数和一般请求属性。
3、使用 connect 方法建立到远程对象的实际连接。
4、远程对象变为可用。远程对象的头字段和内容变为可访问。
<!--EndFragment-->
public static void test01(){
URL url = null;
try {
url = new URL("http://192.168.0.12:8080/mp3/resources.xml");
URLConnection urlc = url.openConnection();
urlc.connect();
StringBuffer sb = new StringBuffer();
BufferedReader br =
new BufferedReader(new InputStreamReader(urlc.getInputStream()));
String str = "";
while((str = br.readLine()) != null){
sb.append(str);
}
System.out.print(sb.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
2、基于TCP/IP的网络编程
客户端Socket的创建和使用方法,Socket选项
服务器端ServerSocket
Socket在网络编程中的作用是实现客户端和服务器端的通信,他们相互发送的信息都保留在socket的对象当中,服务器端可以通过ServerSocket对象的accept()方法监听客户端,并且可以获得监听到的客户端的socket的对象。由此可以获得客户端发送给服务器的信息。此时客户端正在等待服务器的回应,服务器端的可以吧信息写入到Socket对象当中,供客户端的读取。
理解客户端和服务器端中的Socket.getInputStream() 和Socket.getOutputStream()
以下源代码:
1、Client_Socket.java
package socket_01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client_Socket {
public static void main(String[] args){
try{
//启动客户端
Socket socket = new Socket("localhost", 12345);
socket.connect(null);
//客户端的读入内容
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//把读入的内容发送给服务器,同时接受服务器回传的数据getInputStream()---- getOutputStream())
BufferedReader bufferReader =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
String readLine="";
while((readLine = br.readLine()) != null ){
System.out.println("client input one time .");
os.println(readLine);
os.flush();
String responseline = bufferReader.readLine();
System.out.println("收到回复:" + responseline);
}
bufferReader.close();
os.close();
socket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
2、Server_Socket.java
package socket_01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server_Socket {
public static void main(String[] args){
ServerSocket server = null;
try {
server = new ServerSocket(12345);
System.out.println("启动服务:" + server.getInetAddress().getHostAddress() + ":" + server.getLocalPort());
while(true){
Socket socket = server.accept();
System.out.println("客户端连接:" + socket.getInetAddress().getHostAddress() + ":" + socket.getPort());
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
String line;
while((line = is.readLine()) != null){
System.out.println("收到:" + line);
if(line.equals("bye")){
break;
}
else{
os.println(sin.readLine());
os.flush();
}
}
is.close();
os.close();
socket.close();
}
} catch (Exception e) {
// TODO: handle exception
}finally{
try{
server.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
<!--EndFragment-->
2、基于UDP的网络编程
与之有关的类的有:DatagramPacket DatagramSocket MulticastSocket
DatagramPacket需要发送的数据包类,此类对数据进行封装。
DatagramSocket 数据包的套接字,该类对象以数据包为参数,发送和接受数据包。Send方法和receive方法
MulticastSocket 组合 DatagramPacket使用。与DatagramSocket的使用类似。
package udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPServer {
public static void main(String[] args){
try {
DatagramSocket socket = new DatagramSocket(12345);
byte buf[] = new byte[1000];
DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);
System.out.println("开始接受包信息");
while(true){
socket.receive(receivePacket);
String name = receivePacket.getAddress().toString();
System.out.println("来自主机: " + name + "\n端口" + receivePacket.getPort());
String s = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("接受数据 " + s);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
package udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPClient {
public static void main(String[] args){
try {
DatagramSocket socket = new DatagramSocket();
InetAddress host = InetAddress.getByName("localhost");
String msg = "hello, i am client !";
DatagramPacket sendPacket = new DatagramPacket(msg.getBytes(),msg.length(),host,12345);
socket.send(sendPacket);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
服务器端监听是否有数据包到来。相应的方法是socket.receive(receivePacket);当没有数据包到达时,该方法一直处于阻塞状态。
客户端通过socket.send(sendPacket);发送数据包。
<!--EndFragment-->
<!--EndFragment-->
分享到:
相关推荐
windows网络编程01
Python 网络编程 01_IP地址_端口.mp4
1、Linux网络编程01——网络协议入门 2、Linux网络编程02——无连接和面向连接的区别 3、Linux网络编程03——字节序和地址转换 4、Linux网络编程04——套接字 5、Linux网络编程05——C/S与B/S架构的区别 6、Linux...
VS.NET网络编程视频,详细介绍网络编程过程,这是其中的01-03章节
Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等...
Windows网络编程第二版\01-NetBIOS.pdfWindows网络编程第二版\01-NetBIOS.pdf
Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP...
笔记_UNIX环境网络编程卷二进程间通信_中文第二版
JSP网络编程.part01
Python网络编程实战
Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第01章 项目背景知识(共15页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第02章 用HTML+CSS实现宠物分类展现静态网页版本(共44页)....
第01章-网络应用编程入门知识;第02章-数字墨迹与动态绘图基础;第03章-进程、线程与应用程序域;第04章-数据流与数据的加密和解密;第05章-异步编程;第06章-并行编程;第07章-WCF入门;第08章-WCF和HTTP应用编程;...
1.网络编程 (4天) 2.进程线程 (5天) 3.MongoDB 数据库 (4天) 4.正则表达式 (1.5天) 5.项目(2.5天) 6. git的使用(1天) 网络编程 网络功能 : 数据传输 ISO(国际标准化组织) OSI七层模型 ---》 网络...
Python网络编程视频讲解1.ARP.avi Python网络编程视频讲解2.ARP IP ICMP.avi Python网络编程视频讲解3.ICMP UDP.avi Python网络编程视频讲解4 DNS DHCP TFTP.avi Python网络编程视频讲解5.SNMP Syslog NTP.avi ...
资源名称:JavaSE-网络编程视频教程(持续更新中)资源目录:【】01-网络编程(网络模型概述)【】02-网络编程(网络要素-IP地址)【】03-网络编程(网络要素-端口)【】04-网络编程(网络要素-传输协议)【】05-网络编程(IP...
01-复习-Linux网络编程mp40 2-信号量生产者复习mp40 3-协议.mp4 4-7层模型和4层模型及代表协议mp4 AV 5-网络传输数据封装流程avi A 06-以太网帧和ARP请求avi AV 07-IP协议.avi 08-端口号和udp协议.avi Avi 09-TCP...
Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP...
网络编程/socket编程/。总结一下。
上一版本移植并没有写的很详细,只是将改好的代码贴上去,今天更新一版,附带资源。上一版本用的是FreeRTOS V10.0.1.这一版采用了最新的FreeRTOS V10.3.1
本文档是《Visual C++网络编程开发与实战》(清华出版.朱桂英.张元亮)一书的配套源代码。原配光盘是一张包含视频的DVD光盘,因容量太大,从中抽取了源代码内容重新打成6个包,这是第1部分。