2020-10-21

it2024-10-31  7

网络通信

网络编程 IP:定义网络上的节点 端口:区分不同的软件 URL:统一资源定位符

网页编程:应用 js jsp。。。。。 网络编程;协议 底层 数据传输。。。。。。

协议 UDP:写信 不安全 效率高 协议简单 大小不超过60k TCP:打电话 安全 协议复杂 麻烦 没有限制

IP: 定义网络上的节点,节点的地址 本机IP:127.0.0.1 域名:localhost

端口:区分软件 统一协议下的端口号不能冲突 建议使用8000以上的端口号 8000以内的成为预留端口号 InetSocketAddress:这个类实现了IP套接字地址(IP地址+端口号)

爬虫URL URL : 统一资源定位符 是互联网的三大基石之一: html http url 协议 域名 端口 资源 URL : 类 URL代表一个统一资源定位符,一个指向万维网上的“资源”

协议:传输层协议 UDP:非面向连接,写信,不安全,协议小,简单,效率高,大小限制一般不超过60k TCP:面向连接 打电话,安全,效率低,没有大小限制 3次握手 UDP DatagramSocket:定义发送端和接收端 DatagramSocket:打包

UDP定义发送端 1.定义发送端

DatagramSocket ds=new DatagramSocket(8888);

2.准备数据

File file=new File("F:\\Student笔记\\word.txt"); InputStream reader=new FileInputStream(file);

3.打包

DatagramPacket dp=new DatagramPacket(bytes,0,bytes.length,new InetSocketAddress("127.0.0.1",9998));

4.发送

ds.send(dp);

5.关闭

ds.close();

UDP接收端 1.定义接收端

DatagramSocket dgs=new DatagramSocket(9998);

2.准备包裹

byte[] bytes=new byte[1024*60]; DatagramPacket packet=new DatagramPacket(bytes,bytes.length);

3.接收数据

dgs.receive(packet);

4.处理数据

File file=new File("F:\\Student笔记\\wordcopy.txt"); OutputStream os=new FileOutputStream(file); byte[] arr=packet.getData(); int len=packet.getLength(); os.write(arr,0,len);

5.关闭

os.close(); dgs.close();

TCP 客户端 1.定义我是一个客户端 Socket

Socket client=new Socket("127.0.0.1",8998);

2.通过IO操作发送数据

//获取输入流 DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(client.getOutputStream())); //写字符串 Scanner sc=new Scanner(System.in); System.out.println("请输入账号:"); String number=sc.next(); System.out.println("请输入密码:"); String passWrd=sc.next(); String str=new String("number="+number+"&passWord=" +passWrd); dos.writeUTF(str);

3.刷出

dos.flush();

4.关闭

dos.close(); client.close();

服务端:

1.定义一个服务端 ServerSocket

ServerSocket serve=new ServerSocket(8998);

2.阻塞式监听 Socket accept()监听连接套接字并接收它

Socket socket=serve.accept();

3.通过IO读入数据

DataInputStream dis=new DataInputStream(new BufferedInputStream(socket.getInputStream())); //读入数据 String str=dis.readUTF(); String[] words=str.split("&"); String number=words[0].concat("number=");

4.处理数据

if (number.equals("123456789")){ System.out.println("账号正确"); String passWord=words[1].concat("passWord="); if (passWord.equals("Pan123456")){ System.out.println("密码正确"); } }else { System.out.println("账号或密码错误"); } System.out.println(str);

5.关闭

dis.close(); socket.close(); serve.close();
最新回复(0)