黑马程序员--网络编程的基础知识

网络编程的基础知识

 

    网络协议与TCP/IP

 

    IP地址和Port(端口号)

           本地回路的IP地址:127.0.0.1

 

           端口号的范围0-65535之间

 

    UDPTCP

       TCP传输控制协议。是面向连接的通信协议。

 

       UDP用户数据报协议,是无连接通信协议。

 

 

 

  Socket是网络驱动层提供给应用程序编程的接口和一种机制。

 

  Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IPPort

 

  

  

 

 

 

Java中的网络编程类

      DatagramSocket类用于UDP通信

 

     ServerSocket类用于TCP通信的服务器端

 

     Socket类用于TCP通信的服务器和客户端

 

UDP网络程序

     DatagramSocket

           构造函数:

               Public DatagramSocket()

 

                Public DatagramSocket(int port)

 

                Public DatagramSocket(int port ,InetAddress laddr)

          Close方法

          Send方法

          Receive方法

 

     DatagramPacket类:就是发送和接收数据

              构造函数

                  Public DatagramPacket(byte[] buf,int length)

 

                  Public datagramPacket(byte[] buf,int length,InetAddress add,int port)

              getInetAddressgetPort方法

              getDatagetLength方法

 

     InetAddress类是用于表示计算机IP地址的一个类,而在日常应用中计算机地址是用 192.168.0.1

            getByName方法

            getHostAddress方法

 

 

网络聊天室:

 

Chat; 

java.awt.*;import

java.io.IOException;import

java.net.DatagramSocket;import

  Chat Frame{      Window ;    List 对象,用于最多显示

lstnew

//定义

tfIPnew

//定义输入消息文本输入框     TextField = TextField(20);          

dsnull

      Chat(){        {             = DatagramSocket(3000);        }(Exception e){            e.printStackTrace();        }        

thislst"Center"

new

this"South"

new

tfIP"West"

tfData"East"

//定义

newnew

//定义

publicvoid

bytenewbyte

new

whiletrue

try

ds

catch

// Auto-generated catch block                  (!.isClosed()){                  e.printStackTrace();}              }               .add( String(buf,0,dp.getLength()),0);               }            }        }).start();        

tfDatanew

          

publicvoid

//定义字节数组              [] buf;              buf = .getText().getBytes();              {              DatagramPacket dp = DatagramPacket(buf, buf.,InetAddress.getByName(.getText()),3000);              .send(dp);              }(Exception ex){                  ex.printStackTrace();              }              .setText();           }                    });          addWindowListener( WindowAdapter(){              windowClosing(WindowEvent e){                 .close();                 dispose();                 System.exit(0);              }          });     }           main(String []args){        System..println();                Chat mainFrame = Chat();               .setSize(300,400);      ((Frame) ).setTitle();       .setVisible();     ((Frame) ).setResizable();             }}package

import

java.awt.event.*;import

java.net.DatagramPacket;import

java.net.InetAddress; 

classextends

privatestaticmainFram

//定义6     List = List(6);     IP地址文件输入框     TextField = TextField(15);     

tfDatanew

// DatagramSocket对象     DatagramSocket = ; 

public

try

dsnew

catch

//添加进来        .add(,);                Panel p = Panel();        .add(p,);        p.setLayout( BorderLayout());        p.add(,);        p.add(,);                 线程         Thread( Runnable(){            run方法             run(){                               buf[] = [1024];                              DatagramPacket dp = DatagramPacket(buf, 1024);               (){                {                  .receive(dp);              } (IOException e) {                  TODO

ifds

lstnew

//消息的事件处理        .addActionListener( ActionListener(){ 

@Override           actionPerformed(ActionEvent e) {             

byte

tfData

try

new lengthtfIP

ds

catch

tfData""

new

publicvoid

ds

publicstaticvoid

out"Starting Chat...."

new

mainFram

mainFram"Chat"

mainFramtrue

mainFramfalse

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值