GUI和网络编程(UDP,TCP)

1,GUI:Graphical User Interface(图形用户接口)(提供的对象都存在java.awt包和javax.swing包)

2,java.awt:抽象窗口工具包,需要调用本地系统方法实现功能属重量级控件

java.swing:在awt包基础上,建立了图形界面系统,提供了更多的组件,完全由java实现,属轻量级控件

2,布局管理器

(1)FlowLayout(流式):从左到右,Panel默认

(2)BorderLayout(边界):东西南北中,Frame默认

(3)GirdLayout(网格):规则的矩阵

(4)GirdBagLayout(网格包):非规则的矩阵

(5)CardLayout(卡片):选项卡

3,Component (创建图形化界面)

(1)创建Frame窗体:Frame f = new Frame(“名称”)

(2)对窗体进行设置:

 setBound(长,宽,左距离,上距离)= {大小(setSize(长,宽)),位置(setLocation(左距离,上距离))},

 布局(setLayout(new 布局()))

(3)定义组件Button  b  = new  Button(“内容”)

(4)将组件通过窗体的add方法添加到窗体(add(b))

(5)让窗体显示:setVisible(true)

4,事件监听机制的特点:

(1)事件源;awt包或swing包中的图形界面组件

(2)事件:每一个事件源都有自己特有的对应事件和共性事件

(3)监听器:将可以触发某一个事件的动作(不止一个)都封装到监听器中

(4)对事件处理

5,添加监听器(导入两个包,java.awt.*,java.awt.event.*),addWindowListener(参数),

创建一个类继承WindowAdapter,覆盖需要的方法

6,网络编程

OSI:应用层-表示层-会话层-传输层-网络层-数据链路层-物理层

TCP/IP:应用层-传输层-网际层-主机至网络层

(1)IP地址:网络中设备的标识,本地回环地址,127.0.0.1;主机名,localhost;

(2)端口:标识进程的逻辑地址,有效端口0-65535;

(3)传输协议;

7,InetAddress(IP地址):

    getByName(String  host)确定主机名称的IP地址;

    getByAddress(String  host,byte[] addr)根据提供的主机名和IP地址创建InetAddress;

    getHostAddress()返回文本显示中的IP地址字符串;

    getHostName()获取此IP地址的主机名;

8,协议:

UDP:

1,将数据及源和目的封装成数据包中,不需要建立连接;

2,每个数据包的大小限制在64k内;

3,因无连接,是不可靠协议;

4,不需要建立连接,速度快

TCP:

1,建立连接,形成传输数据的通道;

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

3,通过三次握手完成连接,是可靠协议;

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

9,Socket(两台机器之间通讯的端点)

UDP

DatagramSocket(既可接收也可发送)

发送:

(1)建立UDP Socket服务   

DatagramSocket  ds = new  DatagramSocket();

(2)提供数据,并将数据封装到数据包中DatagramPacket

DatagramPacket  dp  = new  DatagramPacket (byte[]  buf,int  length,InetAddress  address,int  port)

(3)通过Socket服务的发送功能,将包发出去

ds.send(dp)

(4)关闭资源

ds.close()

接收:

(1)定义Socket服务

DatagramSocket  ds = new  DatagramSocket();

(2)定义一个数据包,用于存储接收到的数据

DatagramPacket   dp = new  DatagramPacket(buf,buf.length)

(3)通过receive方法将收到的数据存入包中

   ds. receive(dp)

(4)通过数据包获取数据

String  ip = dp.getAddress().getHostAddress();

String data = new String(dp.getData(),0,dp.getLength());

int port = dp.getPort()

(5)关闭资源

TCP

客户端  Socket ;服务端 ServerSocket

客户端:Socket建立对象时必须连接指定主机

(1)创建Socket服务,并指定要连接的主机和端口

Socket s = new Socket (“IP地址”,端口);

(2)为了发送数据,应该获取Socket流中的输出流

OutputStream  out = s.getOutputStream();

(3)调用输出流的write方法

out.write(内容);

服务端:

(1)建立服务端的Socket服务,ServerSocket(),并监听一个端口

ServerSocket  ss  =  new  ServerSocket(端口)

(2)获取连接过来的客户端对象,通过ServerSocket的accept方法,没有连接就会等,此方法是阻塞的;

Socket  s  = ss.accept();

(3)如果客户端发来数据,那么服务端要使用对象的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据

InputStream  in  = s.getInputStream();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值