javaee学习日记之java基础之网络通讯
来源:互联网 发布:c语言入门经典例题 编辑:程序博客网 时间:2024/06/08 19:33
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(); } } }}
阅读全文
0 0
- javaee学习日记之java基础之网络通讯
- javaee学习日记之java基础之初识java
- javaee学习日记之java基础之集合类
- javaee学习日记之java基础之异常
- javaee学习日记之java基础之I/O流
- javaee学习日记之java基础之jdbc
- javaee学习日记之java基础之jQuery
- javaee学习日记之java基础之类和对象
- javaee学习日记之java基础之内部类和反射
- javaee学习日记之java基础之多线程
- javaee学习日记之java基础之接口,继承,抽象类
- javaee学习日记之java基础之Sql语句和MySql方言
- javaee学习日记之html
- javaee学习日记之css
- javaee学习日记之javascript
- 黑马程序员--java基础之网络通讯
- javaee学习日记之SSM环境搭建
- 学习笔记之javaEE基础
- 【正一专栏】新赛季欧冠小组赛猜想
- mysql使用预留关键字作为字段名会报错
- 136. Single Number
- 【正一专栏】二线城市抢人大战的思考
- 相似URL判定及字符串相似度距离
- javaee学习日记之java基础之网络通讯
- [编程题]折纸问题
- Redis-数据结构-压缩列表-ziplist
- java中的进程与线程解析
- 字典树
- 【正一专栏】如果不是生活所迫,谁会愿意苟且
- SSH整合之pom.xml
- HDU 3341 Lost's revenge (AC自动机 + dp[优化好多= =])
- Linux常用命令整理