自己对网络编程的概述


----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

网络编程学习完,自己也经常编写一些小程序,所以对网络编程有一定的认识,所以我下面就对网络写一下自己的见解。

1.网络模型:

·OSI参考模型

·TCP/IP参考模型

2.网络通讯要素:

1.Ip地址

2.端口号

3.传输协议

通讯的必要条件:

1.通过Ip找到对方的主机

2.数据要发送到对方指定的应用程序上,所有要指定端口号。

3.定义通讯规则,这种规则就是通讯协议。


 UDP
    将数据及源目的封装成数据包中,不需要建立连接
    每个数据报的大小在限制在64 K内
    因无连接,是不可靠协议
    不需要建立连接,速度快
 TCP
    建立连接,形成传输数据的通道
    在连接中进行大量的数据传输
    通过三次握手完成连接,是可靠协议
    必须建立连接,效果会稍低


   
Socket
     Socket就是为了网络服务提供一种机制
     通信的两端都有Socket
     网络通信就是Socket间的通信
     数据在两个Socket间通过IO传输


下面代码是我自己写的小程序:

/**
网页爬虫:
	爬出网页内所有的邮箱。

思路:
	先将规则封装成对象,然后再将规则和要匹配的字符相关联,获得Matcher对象,
	然后用Matcher对象来开始查找find(),获取需要的数据调用group()方法。

*/
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;
import java.net.URLConnection;



class RegexTest 
{
	public static void main(String[] args) throws Exception
	{
		HashSet<String> hs=new HashSet();
	//	ArrayList<String> al=new ArrayList<String>();
		RegexTest rt=new RegexTest();
		//邮箱的正则表达式:
		String reg="\\d+";
		
	
		String str="http://..";
		InputStream in=rt.getURLMsg(str);
		
		hs=rt.getMsg(in,reg);System.out.println("1");
		System.out.println(hs);
		
	//	al=rt.getMsg(in, reg);
		Iterator<String> it=hs.iterator();
		System.out.println(it.hasNext());
		while(it.hasNext())
		{
			System.out.println("2");
			System.out.println(it.next());
		}

		
		
	}
		
	
	//传入一个网址域名,获取网页上的信息,然后返回一个输入流:
	
	/**/
	public InputStream getURLMsg(String url_str)throws Exception 
	{
		URL url=new URL(url_str);
		URLConnection conn=url.openConnection();
		InputStream in=conn.getInputStream();
		
		BufferedWriter bufw=new BufferedWriter(new FileWriter("a.txt"));
		
		BufferedReader bufr=new BufferedReader(new InputStreamReader(in));
		String line=null;
		
		while((line=bufr.readLine())!=null){
			bufw.write(line);
			bufw.flush();
		}
		System.out.println("信息爬完!");
	
		return in;

	}
	
	
/**/	//传入流对象和正则规则,获取想要的数据;
	public HashSet<String> getMsg(InputStream in,String regex)throws Exception 
	{
	//	ArrayList<String> al=new ArrayList<String>();
		HashSet<String> hs=new HashSet<String>();
		//现将正则规则封装成对象。
		Pattern p= Pattern.compile(regex);

		BufferedReader bufr=new BufferedReader(new InputStreamReader(in));
		
		String line=null;

		while((line=bufr.readLine())!=null)
		{
			Matcher m=p.matcher( line);
			while(m.find())
			{
				hs.add(m.group());
			}
		}
		
		return hs;

	}

}

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值