URL
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Test {
public static void main(String[] args) {
URL url = null;
try {
url = new URL(
"http://pic4.nipic.com/20091020/1951212_110225287435_2.jpg");//定义网络地址
URLConnection uc = url.openConnection();//连接
try (InputStream in = uc.getInputStream(); RandomAccessFile raf = new RandomAccessFile("gril.jpg", "rw");) {//创建输入流获取网络文件流,创建输入输出流写入本地
byte[] b = new byte[1024];//一次写入1kb
int len = 0;
while ((len = in.read(b)) != -1) {//判断是否还有内容
raf.write(b, 0, len);//写入从0-(length-1)
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
UDP
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Scanner;
public class FourClient {
/*实现一直通信。就是你来我往,直到输入其中一端说,bye。*/
public static void main(String[] args) {
try {
DatagramSocket ds = new DatagramSocket(18000);//创建套接字对象,指定端口号
while(true){//持续接收
byte[] b = new byte[1024];
DatagramPacket dp = new DatagramPacket(b, b.length);//接收数据
ds.receive(dp);//接收
String se = new String(b);
System.out.println(se);//输出
if(se.equals("bye")){
break;
}
Scanner sc = new Scanner(System.in);//输入
String s = sc.next();
byte[] barr = s.getBytes();
DatagramPacket dps = new DatagramPacket(barr, barr.length, InetAddress.getByName("127.0.0.1"),
dp.getPort());//发送的地址
ds.send(dps);//发送
if(s.equals("bye")){
break;
}
}
ds.close();//关闭资源
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
public class FourServer {
public static void main(String[] args) {
try {
DatagramSocket ds = new DatagramSocket(32111);//创建套接字对象,指定端口号
while(true){
Scanner sc = new Scanner(System.in);
String s = sc.next();
byte[] b = s.getBytes();
DatagramPacket dp = new DatagramPacket(b, b.length,InetAddress.getByName("127.0.0.1"),18000);//指定地址
ds.send(dp);//发送
if(s.equals("bye")){
break;
}//当发送数据为bye时关闭
byte[] barr = new byte[1024];
DatagramPacket dps = new DatagramPacket(barr,barr.length);//接收设置
ds.receive(dps);//接收
String se = new String(barr);
System.out.println(se);//输出
if(se.equals("bye")){
break;
}//当输出为bye时关闭
}
ds.close();//关闭资源
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TCP
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(9000);// 设置端口
Socket socket = server.accept();// 建立套件字
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 创建输入流
String s = br.readLine();// 获得接收的信息
System.out.println(s);// 输出
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Tool {
public static void main(String[] args) {
Socket socket = null;
try {
socket = new Socket("127.0.0.1", 9000);// 创建套接字连接服务器IP地址,端口号
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));// 获取输出流
String s = "你好么?????";
bw.write(s);// 进行输出
bw.close();// 关闭资源
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();// 关闭资源
} catch (IOException e) {
e.printStackTrace();
}
}
}
}