2020/08/31 QQ101781939 java网络编程

网络是什么?网络就是连接在一起共享数据和资源的一组计算机。

按照地理覆盖范围,计算机网络可以划分为局域网、城域网和广域网。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如何记忆:应(应用层)该会(会话层)传(传输层)网(网络层),数据(数据链路层)物理(物理层)都很好。 (应该会传网,数据物理都很好)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

服务端的代码

package com.uplook.ch01;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/* 
 * 套接字编程:服务端,接收客户端的请求,处理
 */
public class ServerSocketTest1 {
   public static void main(String[] args) {
	//1024-65535
	   try {
		   System.out.println("服务端正在启动......");
		   //套接字服务端ServerSocket
		   ServerSocket server =new ServerSocket(8877);
		   //创建server服务端 ,监听8877端口号
		
		   while(true) {
			   //客户端套接字Socket
			   Socket socket =server.accept();
			   //接收到客户端请求后,创建输入流,通过输入流接收数据
			   InputStream is =socket.getInputStream();
			   byte[] bt =new byte[1024];
			   int length =is.read(bt);
			   System.out.println(new String(bt,0,length));
			   //给客户端回信息
			   
			  String msg ="你好,我是你的粉丝";
			  //用数组接收
			  byte[] bt1=msg.getBytes();
			  //输出流
			  OutputStream os = socket.getOutputStream();
			  bt1=msg.getBytes();
			  //写下内容
		      os.write(bt1);
		      os.close();
		   }
//	     is.close();
//	     socket.close();
//	     server.close();
		   
		   
	   } catch (IOException e) {
		e.printStackTrace();
	}
}
}

在这里插入图片描述

客服端的代码

package com.uplook.ch01;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
//客户端Socket 程序,请求服务端,并且传输一定的数据信息给服务端
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientSocket {
     public static void main(String[] args) {
		 try {
			 
			Socket sk =new Socket("localhost",8877);
		    String str ="我是作者";
		    
		    OutputStream os =sk.getOutputStream();
		    byte[] bt=str.getBytes();
		    os.write(bt);
		    System.out.println("客户端已经给服务端传输了一句话....");
		    //接收服务端回复的信息

		   InputStream is = sk.getInputStream();
		   byte[] bt1 =new byte[1024];
		   int length =is.read(bt1);
		   System.out.println("服务端回复的信息是:"+new String(bt1,0,length));
		    os.close();
		    sk.close();
		    
		 } catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

第二种传送信息的方式 UDP比TCP速度快,但是容易丢包

在这里插入图片描述
在这里插入图片描述

UDPserviceTest代码

package com.uplook.ch01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
/*
 * UDP服务端,接收客户端发来的数据报包
 */
public class UDPserviceTest {

	public static void main(String[] args) throws IOException {
       byte[] bt =new byte[1024];
        //数据报包
       //服务端接收数据报包
		DatagramPacket dp =new DatagramPacket(bt, bt.length);
	 
		DatagramSocket socket =new DatagramSocket(7766);
	    //收到
	    socket.receive(dp);
	    System.out.println(new String(bt,0,dp.getLength()));
		// 1、 DatagramPacket
		// 2、通过DatagramSocket send方法来发送数据报包
	    socket.close();
	}

}

在这里插入图片描述

UDPClient 代码

package com.uplook.ch01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

public class UDPClient {
   public static void main(String[] args) throws IOException {
	//像发送快递一样 这是快递包裹的内容
	   String str ="你的包裹已经送到目的地";
	   //打包包裹
	   byte[] bt =str.getBytes();
	   //你寄送快递需要你的包裹,你包裹长度,寄送地址是哪里
	   DatagramPacket dp =new DatagramPacket(bt, bt.length,
			   new InetSocketAddress("localhost",7766));
//但这里是我的自己寄送快递的家,你得标注自己的家牌号,快递员去你家取货
       DatagramSocket ds =new DatagramSocket(8888);
       ds.send(dp);
       System.out.println("ok.......");
       ds.close();
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值