黑马程序员_Java_网络编程(一)

来源:互联网 发布:mac卸载safefinder 编辑:程序博客网 时间:2024/05/29 17:07

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一.网络编程概念

1.IP地址
每一台机器都有一个唯一的IP地址, 通过IP地址可以找到这台机器.
IPv4 由4组0~255组成. 42亿个. 3/4在北美. 亚洲4亿. 中国2.5亿. 2011年3月分配完毕.
IPv6 由8组每组4个16进制组成.
ipconfig可以查询自己的IP.
ping 尝试连接某ip地址
127.0.0.1 本地回路地址, ping这个地址可以测试网卡是否可用
255.255.255.255 广播地址

2.端口号
计算机上的每一个程序都会对应一个端口号 0~65536
尽量使用1024以上的, 1024以下基本都被系统程序占用了

3.UDP
面向无连接, 不保证数据安全, 速度快.

4.TCP
面向连接, 数据安全, 速度稍慢. 三次握手. 发起请求, 接受请求, 发送数据.

二.API

1.UDP发送:

             需要创建Socket, 发送端不需要指定ip地址和端口, 使用本机地址发送, 会自动找到未使用的端口.              DatagramSocket socket = new DatagramSocket();              发送时需要创建数据包, 包含字节数组, 长度, ip地址, 端口号             DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, 

InetAddress.getByName(“127.0.0.1”), 8888);

             发送             socket.send(packet);             释放资源             socket.close();

2.UDP接收

            需要创建Socket, 接收时必须指定端口号.            DatagramSocket socket = new DatagramSocket(8888);              接收时也需要创建数据包, 用来存储数据. 需要一个字节数组.              DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);              接收数据               socket.receive(packet);                从数据包中获取数据                byte[] data = packet.getData();                获取数据长度                int len = packet.getLength();                获取ip地址                 packet.getInetAddress().getHostAddress();                 获取端口号                 packet.getPort();

三.GUI聊天室(老师所讲案例总结)

1.界面所需组件
TextArea 接收
TextArea 发送
TextField 填写IP
Button 发送
Button 清屏
Button 聊天记录

2.界面布局
Frame是边界布局
其中包含两个Panel, 一个是Center用来放文本域, 一个是South用来放文本框及按钮
上面的Panel是边界布局BorderLayout, 其中有两个TextArea, 一个接收一个发送, 接收的在Center, 发

送的在South
下面的Panel是流式布局FlowLayout, 其中包含文本框和3个按钮

3.发送
给发送按钮添加ActionListener, 当点击按钮时发送
获取文本框中的内容, ip地址
获取发送文本域中的内容, 消息内容
将消息内容发送到指定的ip地址, 端口号统一8888, 需要判断ip地址, 如果没填就像广播地址

255.255.255.255发送
然后将发送出去的内容显示在接收文本域中
在发送文本域中添加KeyListener, 当按下CTRL+ENTER时发送

4.接收
开启一条线程用来接收数据
接收到数据之后显示在接收文本域中

5.清屏
给清屏按钮添加ActionListener, 当点击按钮时清除接收文本域中所有内容

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

0 0
原创粉丝点击