网络编程demo之Udp和URL
首先是udp编程客户端发送消息给服务端,服务端接受然后打印到console控制台上
下面是一个有代表性的demo
package com.henu.liulei;
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 org.junit.Test;
public class TestUdp {
@Test
public void send()
{
try {
DatagramSocket ds=new DatagramSocket();//创建一个datagramsocket对象
byte[]b;
b="你好,我是要发送的数据".getBytes();
//创建一个数据报,每个数据报不能大于64k,都记录着数据信息,发送端的IP,端口号,以及要发送的接收端的ip,端口号
DatagramPacket pack=new DatagramPacket(b,0,b.length,InetAddress.getByName("127.0.0.1"),9090);
ds.send(pack);//socket对象把数据发送出去
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();
}
}
@Test
public void receive()
{
try {
DatagramSocket ds=new DatagramSocket(9090);//也是先创建一个socket对象,只需要指明端口号就
//以
byte []b=new byte[1024];
DatagramPacket pack=new DatagramPacket(b,0,b.length);//声明数据报
ds.receive(pack);//接受数据报
String str =new String(pack.getData(),0,pack.getLength());//把数据报里面的内容转为字符串打印出来
System.out.println(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
下面是url编程的demo
package com.henu.liulei;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
//Url:统一资源定位符,一个URL对象对应互联网上一个资源
//我们可以通过URL的对象调用其相应的方法,将此资源读取下载
public class TestUrl {
public static void main(String[] args) throws Exception {
//创建一个url的对象
URL url=new URL("http://www.baidu.com/index.html");//相当于File file=new File("文件的路径")
//
System.out.println(url.getHost());//主机
System.out.println(url.getProtocol());//协议
System.out.println(url.getPort());//端口号
System.out.println(url.getFile());//文件名
System.out.println(url.getRef());//获取url在文件里的相对位置
System.out.println(url.getQuery());//获取该url的查询名
//将服务端的资源读进来
InputStream 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);
}
is.close();
//如果既有数据的输入,又有数据的输出则考虑URLConnection
URLConnection urlCon=url.openConnection();
InputStream is1=urlCon.getInputStream();
FileOutputStream fos=new FileOutputStream(new File("abc.txt"));
byte []b1=new byte[10];
int len1;
while((len1=is1.read(b1))!=-1) {
fos.write(b1,0,len1);
}
fos.close();
is1.close();
}
}
网络编程demo之Udp和URL的更多相关文章
- javase的网络编程(InetAddress,UDP,TCP,URL,Socket,DatagramSocket)
通过一段时间对java网络编程相关内容的学习,写下这篇随笔,对这一部分的知识进行梳理和总结. 网络编程 一.网络编程三要素: IP地址:网络会给每个联网的主机分配一个数字的编码地址,该地址就是IP地址 ...
- 网游中的网络编程3:在UDP上建立虚拟连接
目录 网游中的网络编程系列1:UDP vs. TCP 网游中的网络编程2:发送和接收数据包 网游中的网络编程3:在UDP上建立虚拟连接 TODO 二.在UDP上建立虚拟连接 介绍 UDP是无连接的,一 ...
- 网络编程第三讲UDP编写
网络编程第三讲UDP编写 一丶UDP简介 UDP是面向无连接的.就是说数据传输会丢掉.网络延时比较大的情况下.会早上丢包.例如视频通话.就是UDP UDP不需要建立建立. 下面有UDP编写流程图 下图 ...
- Socket网络编程TCP、UDP演示样例
Socket网络编程: 1) OSI(了解): 国际标准化组织ISO(International Orgnization for Standardization)指定了网络通信的模型:开放系统互联(O ...
- C#网络编程入门之UDP
目录: C#网络编程入门系列包括三篇文章: (一)C#网络编程入门之UDP (二)C#网络编程入门之TCP (三)C#网络编程入门之HTTP 一.概述 UDP和TCP是网络通讯常用的两个传输协议,C# ...
- Linux Linux程序练习十一(网络编程大文件发送UDP版)
//网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> # ...
- Linux网络编程10——使用UDP实现五子棋对战
思路 1. 通信 为了同步双方的棋盘,每当一方在棋盘上落子之后,都需要发送给对方一个msg消息,让对方知道落子位置.msg结构体如下: /* 用于发给对方的信息 */ typedef struct t ...
- TCP/IP网络编程之基于UDP的服务端/客户端
理解UDP 在之前学习TCP的过程中,我们还了解了TCP/IP协议栈.在四层TCP/IP模型中,传输层分为TCP和UDP这两种.数据交换过程可以分为通过TCP套接字完成的TCP方式和通过UDP套接字完 ...
- 网络编程原理与UDP实现
如何发送数据包? Q:当应用程序产生数据的时候,需要去构造数据包并发送到网络上去,但是由谁负责处理呢? A:现代操作系统负责数据包得构造与发送,应用程序只需提供数据. 当应用程序产生数据时,应用程序将 ...
随机推荐
- 关于SAP S4 HANA 的13个问题
SAP S/4HANA的路线图是怎样的?价格是多少?下一步还将添加哪些新模块?莫不闻专业SAP问答平台结合SAP HANA及SAP HANA应用商务套件开发全球负责人Uwe Grigoleit帮大家整 ...
- 《avascript 高级程序设计(第三版)》 ---第三章 基本概念2
1.乘性操作符: 1)*法操作法: Infinity * 0 = NaN Infinity * 非零 = Infinity 或 - Infinity 2)/法操作符: Infinity / In ...
- RK平台images打包细则【转】
本文转载自;https://blog.csdn.net/wangxueming/article/details/52808739 IMGs打包细节 平台: RK3288 背景: RK3288编译产生了 ...
- 1 准备学习redis
首先,当然是搜索相关资料了 1 Redis 设计与实现 http://redisbook.com/ 2 Redis快速入门 http://www.yiibai.com/redis/redis_quic ...
- (1)Java多线程编程核心——Java多线程技能
1.为什么要使用多线程?多线程的优点? 提高CPU的利用率 2.什么是多线程? 3.Java实现多线程编程的两种方式? a.继承Thread类 public class MyThread01 exte ...
- 配置 git 以ssh公钥访问github
#生成ssh config touch .ssh/config chmod 600 config 填写: Host github.com User betachen Hostname ssh.gith ...
- ivew组件的使用
iview的官网:https://www.iviewui.com/docs/guide/start 1.选择快速上手 2.安装 解压,cmd,cd进你解压后的文件,cnpm i 3.打包 npm ru ...
- BZOJ-1568: Blue Mary开公司 (李超线段树)
Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词“Query”或“Project”. 若单词为Query,则后接一个整数T,表示Blue ...
- P2463 [SDOI2008]Sandy的卡片[差分+串拼接后缀数组]
P2463 [SDOI2008]Sandy的卡片 套路都差不多,都是差分后二分答案找lcp.只是这题要把多个串拼接起来成为一个大串,中间用某些值域中没有的数字相隔(最好间隔符都不一样想想为什么),排序 ...
- ACM学习历程—NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推)
Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m. ...