黑马程序员----网络编程

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

网络传输过程:

        1,找到对方ip

        2,数据发送到指定端口(每个应用程序对应一个端口)

        3,定义通信规则,即协议   TCP/IP

TCP

        1,面向连接,形成传输数据的通道(像打电话)

        2,连接中进行大量数据量传输

        3,可靠协议,三次握手,

        4,必须建立连接,效率低

UDP

        1,面向无连接,将数据、源、目的封装(像邮递东西)

        2,数据报大小限制在64k内

        3,不可靠协

        4,速度快


Socket

        1、Socket就是为网络服务提供的一种机制。

        2、通信两端都有Socket

        3、网络通信其实就是Socket间的通信

        4、数据在两个Socket之间通过IO传输

通过udp传输方式将一段数据发送出去

        1,建立udpsocket服务

        2,提供数据,并将数据封装在数据包中

        3,通过socket服务的发送功能,将数据包发出去

        4,关闭资源

class UDPSend
{
	public static void main(String[] args) throws Exception
	{
		//创建udp服务。通过DatagramSocket对象
		DatagramSocket ds = new DatagramSocket(9999);//指定端口号发送数据,若不指定系统随机分配。
		//确定数据,并封装成数据包 DatagramPacket(byte[] buf,int length,SocketAddress address,int port)
		byte[] buf = "udp data packet send ....".getBytes();
		DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("localhost"),8888);
		// 发送数据
		ds.send(dp);
		//关闭资源
		ds.close();
	}
}


定义一个应用程序,用于接收udp协议传输的数据并处理

        1,定义一个udpsocket服务。通常监听一个端口

        2,定义数据包,要存储接收到的字节数据,因为数据

        3,通过socket服务的receive方法将接收到的数据存入已经定义好的额数据包中

        4,通过数据包对像特有功能,将数据取出

        5,关闭资源

class UDPReceive
{
	public static void main(String[] args) throws Exception{
		DatagramSocket ds = new DatagramSocket(8888);// 创建数据报套接字并将其绑定到本地主机上的指定端口。
		while(true) {
			byte[] buf = new byte[1024];
			DatagramPacket dp = new DatagramPacket(buf,buf.length);
			ds.receive(dp);
			String ip = dp.getAddress().getHostAddress();
			String data = new String(dp.getData(),0,dp.getLength());//将获取的字节数组数据封装为字符串
			int  port = dp.getPort();//
			System.out.println(ip+"-->"+data+"-->"+port);	
		}
		//ds.close();
	}
}



---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看: www.itheima.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值